【发布时间】:2017-07-15 05:53:54
【问题描述】:
我希望 UICollectionView(红色的)在这种情况下 UICollectionViewCells(黄色的)缩小到内容大小的高度,因为有很多空白空间。我尝试的是使用:
override func layoutSubviews() {
super.layoutSubviews()
if !__CGSizeEqualToSize(bounds.size, self.intrinsicContentSize) {
self.invalidateIntrinsicContentSize()
}
}
override var intrinsicContentSize: CGSize {
return self.collection.contentSize
}
但return self.collection.contentSize 总是返回 (width, 0)
并且由于这个原因,它缩小到高度 30 的值(我在 XIB 文件中为高度设置的值,尽管我有约束 >= 30)。
【问题讨论】:
-
你必须采取ColletionView的高度约束出口并像这样调整高度
heightConstraint.constant = collectionView.contentSize.height -
您使用的是自定义布局还是苹果提供的 - UICollectionViewFlowLayout?
-
我使用的是默认的 UICollectionViewFlowLayout
-
您应该使用 collectionViewLayout.collectionViewContentSize,请参阅@hasan83 的回答。这对你来说是一种可能性。
标签: ios swift uicollectionview nslayoutconstraint ios-autolayout