调整UICollectionView边界大小以适合单元格(使用Storyboard + Auto Layout)

时间:2014-04-09 01:10:20

标签: iphone objective-c ios7 uicollectionview

我将故事板中的 UICollectionView 拖放到现有UIView的某个区域,如下所示:

enter image description here

我不想在 UICollectionView 中允许滚动/分页,因此我从检查器构建器中禁用了这些选项。

我想要实现的目标是使 UICollectionView 的框架/界限自动调整大小以适应所有单元格。这听起来很简单。

我期待 sizeToFit 来处理它。但它没有做任何事情......

我甚至尝试手动将这些更改为某些硬编码值,但没有任何效果......: setFrame: setBounds: invalidateLayout 等等......无济于事。

为了简单起见,我甚至删除了对 UICollectionView 的所有限制,我仍然无法改变代码中的大小。

任何帮助都会非常感激!

2 个答案:

答案 0 :(得分:0)

你可以尝试在方法

中调用一个方法(比如更新CollectionView Frame)
- (UICollectionViewCell *)cellForItemAtIndexPath:(NSIndexPath *)indexPath

遇到最后一个item

答案 1 :(得分:0)

这就是我用Swift做的:)你也可以在obj-c中使用它:

self.newsGrid.reloadData();
self.newsGrid.performBatchUpdates({ () -> Void in

}, completion: { (finished) -> Void in
    print("bounds ");
    println(self.newsGrid.bounds);
    print("size ");
    println(self.newsGrid.contentSize);
});

完成数据源设置后,请调用这些方法。 (注意:打印仅用于演示,您可以在那里设置高度约束,或者只使用contentSize属性更改UICollectionView框架。)