我有一个自定义的UICollectionViewLayout
,它使用iOS 8中的自动调整大小机制。我的UICollectionViewCell
的实现preferredLayoutAttributesFittingAttributes
返回其首选大小,该大小是使用自动布局计算的。这很好。
但是,我期望preferredLayoutAttributesFittingAttributes
也可以用于补充 View ,但是从未调用过。毕竟,它是在UICollectionReusableView
上定义的。
如果此机制仅适用于单元格,那么在自定义UICollectionViewLayout
中使用自动布局调整补充 View 大小的正确方法是什么?
最佳答案
只要补充 View 符合UICollectionViewLayout子类中的以下要求(据我所知!),就会在补充 View 上调用preferredLayoutAttributesFittingAttributes
:
prepareLayout
layoutAttributesForSupplementaryViewOfKind:atIndexPath:
中为补充 View 提供了布局属性layoutAttributesForElementsInRect:
可以看到补充 View elementKind
补充 View 出列补充 View 时,确保collectionView:viewForSupplementaryElementOfKind:atIndexPath:
与CollectionView的dequeueReusableSupplementaryViewOfKind:forIndexPath:
匹配总结:UICollectionViewLayout是一个邪恶的野兽,但如果驯服了,则应调用辅助 View 的
preferredLayoutAttributesFittingAttributes
。关于ios8 - 补充 View 未调用preferredLayoutAttributesFittingAttributes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28025866/