UICollectionView 视图和约束使单元格适合
UICollectionView view and constraints to make cells fit
这些天玩了 UICollectionView
之后,我想我明白它是如何工作的,但是,我缺少一些东西。
我在 UICollectionView
中添加了 8 个视图,当它们不适合屏幕时,它们不会跳到下一行。 UICollectionView
好像比屏幕还大。我不得不在 UICollectionView
上使用约束以使其与父视图的宽度和高度相同。
这里是一些截图:
无约束:
有限制条件:
谁能解释一下这种行为?
如果您没有在 Storyboard 中的视图上设置约束,它将保留在 Storyboard 中指定的尺寸 - 它不会自动调整大小 superview
。因此,UIViewCntroller
的根视图已调整大小以适应屏幕这一事实不会影响 UICollectionView
.
的大小
由于您一直在创建通用尺寸的 UICollectionView
,因此它最终比实际屏幕大得多。
在评论中回答您的后续问题:
在运行时将保留其宽度和高度的常量,与其父级的大小无关(除非您另外指定)。
当显示 UIViewController
时,(在大多数情况下)它的根视图会调整大小以适合屏幕。但是,除非您另外指定,否则它的子项将保持不变。
我所说的通用大小是指故事板中 UIViewController
的大小,如您在 Attribute Inspector -> Size -> Freeform
中指定的那样,默认为 600x600
。我想 "freeform" 比 "universal" 更正确。
这些天玩了 UICollectionView
之后,我想我明白它是如何工作的,但是,我缺少一些东西。
我在 UICollectionView
中添加了 8 个视图,当它们不适合屏幕时,它们不会跳到下一行。 UICollectionView
好像比屏幕还大。我不得不在 UICollectionView
上使用约束以使其与父视图的宽度和高度相同。
这里是一些截图:
无约束:
有限制条件:
谁能解释一下这种行为?
如果您没有在 Storyboard 中的视图上设置约束,它将保留在 Storyboard 中指定的尺寸 - 它不会自动调整大小 superview
。因此,UIViewCntroller
的根视图已调整大小以适应屏幕这一事实不会影响 UICollectionView
.
由于您一直在创建通用尺寸的 UICollectionView
,因此它最终比实际屏幕大得多。
在评论中回答您的后续问题:
在运行时将保留其宽度和高度的常量,与其父级的大小无关(除非您另外指定)。
当显示
UIViewController
时,(在大多数情况下)它的根视图会调整大小以适合屏幕。但是,除非您另外指定,否则它的子项将保持不变。我所说的通用大小是指故事板中
UIViewController
的大小,如您在Attribute Inspector -> Size -> Freeform
中指定的那样,默认为600x600
。我想 "freeform" 比 "universal" 更正确。