我正在尝试使用certain tutorial学习自动调整大小的UICollectionView Cell技术。我不知道如何在Objective-C中编写以下快速代码:

if let cvl = collectionViewLayout as? UICollectionViewFlowLayout {
    cvl.estimatedItemSize = CGSize(width: 150, height: 75)
  }


有人可以帮忙吗?

最佳答案

在Swift中,if-let的构造等效于Obj-C中的nil -checking。 as关键字用于强制转换。问号使其成为可选类型,它是可以容纳nil的值或值。非可选值不能保存nil,如果尝试“打开” nil可选项,则会出现运行时错误。

在Obj-C中(这应该等效):

UICollectionViewFlowLayout * cvl = (UICollectionViewFlowLayout)collectionViewLayout;
if (cvl){
    cvl.estimatedItemSize = CGSizeMake(150, 75);
}


CGGeometry documentation

10-06 00:51