UICollectionView与自定义布局 - 如何/在哪里以编程方式添加一个补充视图?

问题描述 投票:3回答:1

我与Circle Layout的例子工作,使用UICollectionView在故事板定义的自定义布局类。

是否有某种教程或通过如何通过添加一个补充视图来使用自定义布局的集合视图一步解释了一步?

我一直在寻找的Introducing Collection Views例子,却无法真正了解如何意见补充在项目中定义。看来他们都在使用流布局的故事板注册,但我在茫然,是如何在该项目后续的布局变化走动补充意见。

iphone ios objective-c uicollectionview uicollectionviewlayout
1个回答
1
投票

这个想法是,你回UICollectionViewLayoutAttributeslayoutAttributesForElements(in:)的补充意见。例如,在你的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:初始化器创建的。通过此方法返回的补充意见的属性集合视图知道这些观点存在,在那里它们被定位并呼吁collectionView(_:viewForSupplementaryElementOfKind:at:)摆脱它的数据源的实际看法。

© www.soinside.com 2019 - 2024. All rights reserved.