UICollectionViewFlowLayout

UICollectionViewFlowLayout

是否可以直接设置UICollectionViewFlowLayout对象属性而无需接触UICollectionViewDelegateFlowLayout协议?

例如,如果我希望每个项目的大小都相同,那么我可以这样做:

self.collectionViewFlowLayout.itemSize = CGSizeMake(100,100)


代替这个:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake(100, 100);
}


如果为正,如何引用UICollectionViewFlowLayout对象?

如果否定的,您能否解释为什么苹果选择使其成为协议?显然,它需要更多代码。

最佳答案

是的,可以,但是不能通过访问现有的UICollectionViewFlowLayout实例来实现。您需要将UICollectionViewFlowLayout子类化,并处理您想要在子类中使用的所有属性。

今年有一些很棒的WWDC会议,我建议观看。您可以看到Session 205 here (login required)Session 219, here(login required)。第二个视频将直接解决您的问题。

10-05 18:34