这些天玩了一会儿 UICollectionView
后,我想我明白它是如何工作的,但是,我缺少一些东西。
我在 UICollectionView
中添加了 8 个 View ,当它们不适合屏幕时,它们不会跳转到下一行。看起来 UICollectionView
比屏幕大。我必须对 UICollectionView 使用约束,使其与父 View 具有相同的宽度和高度。
这里有一些截图:
没有约束:
有约束:
谁能解释一下这种行为吗?
最佳答案
如果您没有在 Storyboard 中对 View 设置约束,它将保留 Storyboard 中指定的尺寸 - 它不会使用 superview
自动调整大小。因此,调整 UIViewCntroller
的 Root View 大小以适合屏幕的事实不会影响 UICollectionView
的大小。
当您以通用尺寸创建 UICollectionView
时,它最终比实际屏幕大得多。
回答评论中的后续问题:
在运行时将保留其宽度和高度的常量,而不是与其父级的大小相关(除非您另外指定)。
当显示
UIViewController
时,(在大多数情况下)它的 Root View 会调整大小以适合屏幕。但是,除非您另外指定,否则它的子级将保持不变。所谓通用尺寸,是指 Storyboard 中
UIViewController
的尺寸,如您在Attribute Inspector -> Size -> Freeform
中指定的那样,默认为>600x600
。我认为“自由形式”比“通用”更正确。
关于ios - UICollectionView View 和约束以使单元格适合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31139938/