首选布局属性拟合属性不要求补充视图



我有一个自定义UICollectionViewLayout,它利用了iOS 8中的自调整大小机制。我的UICollectionViewCell 的实现preferredLayoutAttributesFittingAttributes返回其首选大小,使用自动布局计算。这工作正常。

但是,我期望preferredLayoutAttributesFittingAttributes也为补充视图工作,但它从未被调用。毕竟,它是在UICollectionReusableView上定义的。

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

只要

preferredLayoutAttributesFittingAttributes符合UICollectionViewLayout子类中的以下要求,它们就会被调用(据我所知!

  1. 补充视图以非零帧布局prepareLayout
  2. layoutAttributesForSupplementaryViewOfKind:atIndexPath:中为补充视图提供了布局属性
  3. 根据layoutAttributesForElementsInRect:,补充视图可见
  4. 最后,确保当补充视图通过dequeueReusableSupplementaryViewOfKind:forIndexPath:取消排队时,elementKind与 CollectionView 的collectionView:viewForSupplementaryElementOfKind:atIndexPath:匹配

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

相关内容

  • 没有找到相关文章

最新更新