gpt4 book ai didi

ios - 如何将结构值加载到collectionView单元格中

转载 作者:行者123 更新时间:2023-11-29 05:36:01 25 4
gpt4 key购买 nike

如何将结构值加载到 Collection View 单元格中。

struct Person: Codable {
let id,name,age,gender: String
}

为人员列表添加值(value)

func addValues () -> [Person]{
person =[(Person(id:"0",name:"abcd",age:"27":gender:"male"))]

}

内部 CollectionView Controller

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! CustomCollectionViewCell
cell.personImg!.image = UIImage.init(named:personList.imageImage[indexPath.row])

switch indexPath.row {
case 0:
cell.lbl_CompletionName!.text = person[0].id
break
case 1:
cell.lbl_CompletionName!.text = person[0].name
break
case 2:
cell.lbl_CompletionName!.text = person[0].age
break
case 3:
cell.lbl_CompletionName!.text = person[0].gender
break
default: break

}

return cell

}

它只获取id值,一旦indexpath.row增加,如何需要分配下一个值,如姓名、年龄、性别。

上面的代码用于提取存储在 arraylist 中的 Struct 值。

我不喜欢我编写代码的方式。是否有其他方法可以提取添加到数组列表属性中的结构值并将其加载到 CollectionView 中?

最佳答案

您可以在CustomCollectionViewCell中创建一个Person变量,并在func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell。您还需要有一个数组(在下面的情况下我将其称为 people),用于存储所有 Person 对象,无论您在哪里显示 Collection View (最有可能是 View Controller ) )。

示例:

struct Person: Codable {
let id,name,age,gender: String
}

Collection View 单元格

class CustomCollectionViewCell: UICollectionViewCell {

// Create a Person variable
var person: Person? {
didSet {
guard let person = person else { return }
// Do something (e.x. set imageView.image = person.image)
}
}

}

Collection View

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

let person = people[indexPath.item] // This is the array of Persons you need in your view controller
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! CustomCollectionViewCell
cell.person = person
return cell

}

关于ios - 如何将结构值加载到collectionView单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57030569/

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