如何更新UICollectionViewCell标签?



我试图改变UICollectionViewCell中的文本标签,但出于某种原因它只是不会更新。任何帮助都将是感激的。谢谢!

你可以使用didSet让你的代码有点反应性。

class CollectionViewCell : UICollectionViewCell{

var text = "" {
didSet{
self.label.text = text
}
}

private var label : UILabel = {
let label = UILabel()
return label
}()

override init(frame: CGRect) {
super.init(frame: frame)
}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

class CollectionViewClass : UIViewController,UICollectionViewDelegate,UICollectionViewDataSource{

var collectionView = UICollectionView()
let id = "cell ID"

override func viewDidLoad() {
super.viewDidLoad()
collectionView = UICollectionView(frame: self.view.frame)
collectionView.register(CollectionViewCell.self, forCellWithReuseIdentifier: id)
collectionView.dataSource = self
collectionView.delegate = self
self.view.addSubview(collectionView)
collectionView.backgroundColor = .white
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 10
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: id, for: indexPath) as! CollectionViewCell
cell.text = "some text"
cell.backgroundColor = .red
return cell
}
}

在上面的代码中,单元格的文本值是每次加载时给定的。无论何时设置文本,都将调用didset来更新标签值。

相关内容

  • 没有找到相关文章

最新更新