UICollectionView 在 vi​​ewDidLoad 中的大小不正确

seb*_*ien 2 viewdidload viewdidappear ios autolayout uicollectionview

我在我的故事板中定义了一个简单的 UICollectionView(见截图)。

在此处输入图片说明

我正在使用自动布局,UICollectionView 附加到超级视图的前导、尾随和顶部以及底部的工具栏。

当我在控制台中显示 viewDidLoad 中 UICollectionView 的大小时:

NSLog(@"%s CollectionView ========== > height:%f width:%f", __PRETTY_FUNCTION__,self.theCollectionView.bounds.size.height, self.theCollectionView.bounds.size.width);
Run Code Online (Sandbox Code Playgroud)

我得到: CollectionView ========== > 框架高度:492.000000 宽度:600.000000

这个尺寸也显示在故事板中(宽度:600 高度:492)。

当我在 viewDidAppear 中运行相同的日志时,我得到: CollectionView ========== > Frame height:663.000000 width:1024.000000

这是我所期望的。我很惊讶只有在 viewDidAppear 中有合适的大小,请你解释一下或者我的故事板有什么问题吗?

谢谢,

塞巴斯蒂安。

tan*_*101 5

对于任何依赖于框架尺寸的东西,我通常使用

override func viewDidLayoutSubviews()
Run Code Online (Sandbox Code Playgroud)

这也将考虑自动旋转。