gpt4 book ai didi

swift - 如何以编程方式添加 UICollectionViewLayout?

转载 作者:搜寻专家 更新时间:2023-11-01 06:15:58 25 4
gpt4 key购买 nike

我正在尝试以编程方式设置 UICollectionViewLayout。我正在使用 UICollectionView,也没有使用 Storyboard,也没有设置其约束。

我关注了Ray Wenderlich关于该主题的教程,并进行了一些更改以使代码适应 Swift 3(正如 AZCoder2 所做的 https://github.com/AZCoder2/Pinterest )。

由于所有这些示例都使用 Storyboard,我还引入了一些更改来创建 UICollectionView 及其 UICollectionViewLayout:

collectionViewLayout = PinterestLayout()
collectionViewLayout.delegate = self
collectionView = UICollectionView.init(frame: .zero, collectionViewLayout: collectionViewLayout)

结果:我什么也看不见。如果我将 UICollectionViewLayout 更改为 Apple 提供的布局 (UICollectionViewFlowLayout),至少我可以看到单元格及其内容。如果我实现一些更改并使用 Storyboard ,一切都会很好,但这不是我想要实现的方式。整个 View 以编程方式制作, Collection View 是其中的一部分。

我错过了什么?这与我实例化 UICollectionViewLayout 的方式有关吗?我是否必须注册一些东西(例如,因为我需要注册可重复使用的单元格)?

最佳答案

你如何创建一个变量来为你创建流布局,就像这样

var flowLayout: UICollectionViewFlowLayout {
let _flowLayout = UICollectionViewFlowLayout()

// edit properties here
_flowLayout.itemSize = CGSize(width: 98, height: 134)
_flowLayout.sectionInset = UIEdgeInsetsMake(0, 5, 0, 5)
_flowLayout.scrollDirection = UICollectionViewScrollDirection.horizontal
_flowLayout.minimumInteritemSpacing = 0.0
// edit properties here

return _flowLayout
}

然后就可以通过调用变量来设置了。

self.collectionView.collectionViewLayout = flowLayout // after initializing it another way
// or
UICollectionView(frame: .zero, collectionViewLayout: flowLayout)

关于swift - 如何以编程方式添加 UICollectionViewLayout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45069271/

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