UICollectionView 在 UIScrollView 内调整大小
Posted
技术标签:
【中文标题】UICollectionView 在 UIScrollView 内调整大小【英文标题】:UICollectionView gets resized inside of UIScrollView 【发布时间】:2016-04-18 08:54:57 【问题描述】:我有一个子类 UICollectionViewController
,我在应用程序的多个位置使用它。将其直接添加到视图中时,它看起来是正确的(水平对齐、垂直滚动),如下所示:
self.activityFeed = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"activityFeed"];
self.activityFeed.view.frame = CGRectMake(0, 76, self.view.frame.size.width, 50);
[self.view addSubview:self.activityFeed.view];
但是,将其添加到 UIScrollView
时,由于某种原因,对齐方式会发生变化,如下所示:
self.activityFeed = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"activityFeed"];
self.activityFeed.view.frame = CGRectMake(0, 300, self.view.frame.size.width, 50);
[self.scrollContentView addSubview:self.activityFeed.view];
// scrollContentView is a view that holds all of my subviews in the scrollview
// also, activityFeed.view has no autolayout constraints attached
我知道约束在滚动视图中的作用有很大不同,为了使我的集合视图看起来与第一张图像中的相同,我需要做些什么不同的事情吗?
【问题讨论】:
【参考方案1】:试试这个, UICollectionView继承自UIScrollView,设置就这么简单,不需要单独的scrollview。
self.collectionView.alwaysBounceVertical = YES
【讨论】:
拥有一个单独的滚动视图与这个问题无关。该滚动视图对于应用程序的其他部分是必需的。【参考方案2】:在故事板属性窗格中将滚动方向设置为水平。
【讨论】:
这已设置为水平,因为它与第一个示例中使用的故事板控制器相同,并且正在工作。以上是关于UICollectionView 在 UIScrollView 内调整大小的主要内容,如果未能解决你的问题,请参考以下文章
在UITableViewCell中委托UICollectionView
处理 UICollectionView 单元格上的滑动:在 UICollectionView 或每个单元格上实现处理程序?