gpt4 book ai didi

iphone - 具有自定义布局的 UICollectionView - 如何/在何处以编程方式添加补充 View ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:13 27 4
gpt4 key购买 nike

我正在处理 Circle Layout 的示例,将 UICollectionView 与 Storyboard中定义的自定义布局类一起使用。

是否有某种教程或分步说明如何将补充 View 添加到使用自定义布局的 Collection View ?

我一直在查看 Introducing Collection Views例如,但无法真正理解该项目中如何定义补充 View 。看起来它们是使用流布局在 Storyboard中注册的,但我不知道该项目中的后续布局更改如何移动补充 View 。

最佳答案

想法是,您为 layoutAttributesForElements(in:) 中的补充 View 返回 UICollectionViewLayoutAttributes。例如,在您的 UICollectionViewLayout 子类中:

var headerAttributes: UICollectionViewLayoutAttributes!

override func prepare() {
headerAttributes = UICollectionViewLayoutAttributes(
forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader,
with: IndexPath(item: 0, section: 0))
headerAttributes.frame = CGRect(x: 0, y: 0, width: 100, height: 40)
}

override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
if headerAttributes.frame.intersects(rect) {
return [headerAttributes]
} else {
return nil
}
}

重要的部分是属性是使用 forSupplementaryViewOfKind: 初始化程序创建的。通过从此方法返回补充 View 的属性, Collection View 知道这些 View 存在以及它们的位置,并将调用 collectionView(_:viewForSupplementaryElementOfKind:at:) 从其数据源获取实际 View .

关于iphone - 具有自定义布局的 UICollectionView - 如何/在何处以编程方式添加补充 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548236/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com