我使用的是Xcode 6 Beta 3,iOS 8 SDK.使用Swift构建目标iOS 7.0.请用下面的截图一步一步地参考我的问题.
我在故事板上有一个UICollectionView.1个原型UICollectionViewCell,中心包含1个标签(无自动调整大小规则).紫色背景用于标记运行时由单元格生成的contentView.最终,该视图的大小将根据我的UICollectionViewLayoutDelegate进行适当调整,但不会在iOS 7上进行调整.请注意,我使用的是Xcode 6,问题只发生在iOS 7上.
当我在iOS 8上构建应用程序时.一切都很好.
Note: Purple is the contentView, Blue is my UIButton with rounded corner.
然而,在iOS 7上,单元格内的所有子视图突然收缩到(0,0,50,50)帧,不再符合我的自动调整大小规则.
我猜这是iOS 8 SDK或Swift或Xcode中的一个bug?
Update 1:这个问题仍然存在于官方的Xcode 6.0.1中!最好的解决方法是像KoCMoHaBTa在下面建议的那样,在cellForItem中设置单元格的框架(不过您必须对单元格进行子类化).事实证明,这是iOS 8 SDK和iOS 7之间的不兼容(请查看下面引用苹果的ecotax回答).
Update 2:
/** Xcode 6 on iOS 7 hot fix **/
cell.contentView.frame = cell.bounds;
cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
/** End of Xcode 6 on iOS 7 hot fix **/