preferredLayoutAttributesFittingAttributes未调用补充视图

时间:2015-01-19 13:34:29

标签: ios8 autolayout uicollectionview uicollectionreusableview

我有一个自定义UICollectionViewLayout,它使用iOS 8中的自我调整机制。我的UICollectionViewCell的工具preferredLayoutAttributesFittingAttributes返回其首选大小,使用自动布局计算。这很好。

但是,我期待preferredLayoutAttributesFittingAttributes也适用于补充视图,但它永远不会被调用。毕竟,它是在UICollectionReusableView上定义的。

如果此机制仅适用于单元格,那么使用自动布局在自定义UICollectionViewLayout中调整补充视图大小的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

只要符合你的UICollectionViewLayout子类中的以下要求,就会在补充视图上调用

preferredLayoutAttributesFittingAttributes(据我所知!):

  1. 补充视图的布局为prepareLayout
  2. 中的非零帧
  3. layoutAttributesForSupplementaryViewOfKind:atIndexPath:
  4. 中的补充视图提供了布局属性
  5. 根据layoutAttributesForElementsInRect:
  6. 显示补充视图
  7. 最后,当补充视图通过elementKind
  8. 出列时,确保collectionView:viewForSupplementaryElementOfKind:atIndexPath:在您的CollectionView dequeueReusableSupplementaryViewOfKind:forIndexPath:中匹配

    总结:UICollectionViewLayout是一个邪恶的野兽,但如果被驯服应该调用你的补充视图preferredLayoutAttributesFittingAttributes