preferredLayoutAttributesFittingAttributes未调用补充视图

And*_*ewC 6 autolayout uicollectionview uicollectionreusableview ios8

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

但是,我期待preferredLayoutAttributesFittingAttributes也能为补充观点工作,但它永远不会被调用.它UICollectionReusableView毕竟是定义的.

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

War*_*ing 3

preferredLayoutAttributesFittingAttributes只要补充视图符合 UICollectionViewLayout 子类中的以下要求(据我所知!),就会在补充视图上调用:

  1. 补充视图以非零帧布局prepareLayout
  2. 为补充视图提供了布局属性 layoutAttributesForSupplementaryViewOfKind:atIndexPath:
  3. 补充视图可见layoutAttributesForElementsInRect:
  4. 最后,当补充视图通过以下方式出列时,确保elementKindCollectionView 中的匹配collectionView:viewForSupplementaryElementOfKind:atIndexPath:dequeueReusableSupplementaryViewOfKind:forIndexPath:

总之: UICollectionViewLayout 是一头邪恶的野兽,但如果被驯服,应该调用您的补充视图的preferredLayoutAttributesFittingAttributes.