我已经注册了2种不同的自定义UICollectionViewCell
类型:
collectionView.register(CustomCell1.self, forCellWithReuseIdentifier: "cell1")
collectionView.register(CustomCell2.self, forCellWithReuseIdentifier: "cell2")
对于其中一种类型的单元格,我需要使其纵向尺寸与横向尺寸不同(我有2个部分,每个部分都填充了一种类型的单元格),我实现了{{1 }}:
collectionView(_:layout:sizeForItemAt:)
人像截图
风景截图:
这似乎在public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if indexPath.section == 0 {
return CGSize(width: 30, height: 30)
}
if UIInterfaceOrientationIsLandscape(UIApplication.shared.statusBarOrientation) {
return CGSize(width: 300, height: 300)
}
return CGSize(width: 100, height: 100)
}
上有效(旋转设备时会调整橙色单元格的大小),但是我在iOS 11
中收到一些奇怪的消息,如下所示:
[App]如果我们在真正的预提交处理程序中,由于CA限制,我们实际上无法添加任何新的隔离区
另一方面,这在Xcode
上根本不起作用(橙色单元格不会调整大小)。
哪种正确的方式来处理这种情况?