如何将结构值加载到集合视图单元格中



如何将结构值加载到集合视图单元格中。

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

为人员列表添加价值

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

内侧收藏视图控制器

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 值,一旦索引路径.row 递增,它如何需要分配下一个值,如姓名、年龄、性别。

上面的代码用于提取存储在数组列表中的结构体值。

不喜欢我编写代码的方式。有没有另一种方法来提取添加到数组列表属性中的结构值并将其加载到集合视图中?

您可以在CustomCollectionViewCell中创建一个Person变量,并在func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell中设置cell.person变量。您还需要有一个数组(在下面的例子中我称之为people(,该数组存储所有Person对象,无论您在哪里显示集合视图(很可能是视图控制器(。

例:

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

集合视图单元格

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)
          }
     }
}

集合视图

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
}

相关内容

  • 没有找到相关文章

最新更新