创建新行时调整UICollectionView的大小

时间:2014-12-18 18:28:43

标签: ios objective-c swift uikit

我在屏幕上以自动布局定位的两个UIView之间有一个集合视图。 当我向此集合视图添加单元格并且水平空间已满时,它会创建一个新行但该行不可见,因为它不适合它的父视图高度。 我想在创建新行时增加集合视图高度,以便每行都可见。 我该如何实现这种行为?是否可以使用自动布局或我需要以编程方式执行此操作?

我创建了一个简单的测试项目来显示问题: https://github.com/eduardoportilho/TestCollectionViewResize

Example

1 个答案:

答案 0 :(得分:5)

我认为您需要在代码中执行此操作。将IBOutlet设置为集合视图上的高度约束,并使用此代码(heightCon是我的插座),

@IBAction func grow(sender: AnyObject) {
        itemCount++
        coll.reloadData()
        coll.layoutIfNeeded()
        heightCon.constant = coll.contentSize.height
}

如果您希望黄色视图与约束中的<>; = 300一样,那么您应该将集合视图的高度约束的优先级更改为小于1000(我使用750)。这将导致您的集合视图增长,直到增长任何更高将导致黄色视图短于300.之后添加的任何单元格将导致集合视图转动。