gpt4 book ai didi

swift - 一个 UIViewController 中的多个 UICollectionView 数据源

转载 作者:行者123 更新时间:2023-11-30 11:45:23 25 4
gpt4 key购买 nike

我对实现有疑问。

我的用户将能够从下拉列表中选择他们想要在 Collection View 中看到的内容。根据选择,数据集和潜在的部分/单元格类型将会改变。

我是否应该拥有一个注册了所有单元格的 UICollectionView,并根据用户的选择修改我的 cellForItemAt

或者我应该每个选择都有一个UICollectionView,然后根据选择交换它们?

最好、更专业的实现是什么?

最佳答案

如果显示的单元格本质上相似(它们具有相同的数据结构,即图片、文本、描述、名称等),那么您应该使用一个可重复使用的单元格。

拥有一个单元格可以使您的代码更加简洁。然后,您还可以在使用数据设置的单元格内设置可观察的属性。将数据传递给cell,然后在cell类内部,它将负责布局代码。

let cell = someDequeuedCell
cell.data = somedata
return cell

然后在单元类中,

var data: SomeData? {
didSet {
//Determine data and layout cell
if data == 'apple' {
//Layout apple cell
} else if data == 'orange' {
//Layout orange cell
} else {
//Layout other cell
}
}
}

这种方法非常常用,但是如果每个单元格的变化不仅仅是数据的更改。您应该为每种数据类型注册多个不同的单元格。

Collection View 内部

if dataType == "apple" {
let cell = appleCell
cell.data = someData
return cell
} else if dataType == "orange" {
let cell = orangeCell
cell.data = someData
return cell
} else {
let cell = otherCell
cell.data = someData
return cell
}

关于swift - 一个 UIViewController 中的多个 UICollectionView 数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48890120/

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