【发布时间】:2016-06-18 13:38:22
【问题描述】:
有什么区别:
self.collectionView.contentSize.height 和 self.collectionView.bounds.origin.y?
后者似乎总是比前者小?
任何清晰的草图将不胜感激。
【问题讨论】:
标签: objective-c swift cocoa-touch uicollectionview uicollectionviewlayout
有什么区别:
self.collectionView.contentSize.height 和 self.collectionView.bounds.origin.y?
后者似乎总是比前者小?
任何清晰的草图将不胜感激。
【问题讨论】:
标签: objective-c swift cocoa-touch uicollectionview uicollectionviewlayout
contentSize是内容的大小,通过滚动显示。假设您有 10 个单元格的大小为 3600x1200。那么内容大小将是 3600x1200。 Bound 将是 collectionview 的实际框架。
更多信息
contentSize 不是 UICollectionView 的直接属性。它源自UIScrollView。 check here
编码愉快。
【讨论】:
UICollectionView不是一次显示所有内容,它只是窗口化了一些内容,所以在这种情况下,内容大小必须大于帧大小。
self.collectionView.bounds.origin.y 通常大于UIScreen.mainScreen().bounds.height。那么它实际上不是 visible 区域的框架吗?任何草图将不胜感激。
bounds 实际上派生自 UIView。我担心它实际上是可见区域。检查here
self.collectionView.bounds.origin.y 的值为 0。因为 UIView 的边界是由它自己的坐标系表示的矩形。 参考Cocoa: What's the difference between the frame and the bounds?
self.collectionView.contentSize.height = 滚动视图的 contentSize
让您有一个集合视图(垂直滚动),其框架为 (0,64,320,504),每个单元格的大小为 (100,100),您有 20 个项目。因此,集合视图的每一行包含 3 个单元格。现在,为了在collectionview 7行中容纳20个项目,我们可以通过垂直滚动查看所有这些项目。
collectionview 的实际大小为 (320,504),contentsize 为 (320,700)。
注意:假设collectionview是垂直滚动的,两行之间没有空格。
【讨论】: