我有一个UICollectionView,其中的单元格包含动态更新的UILabel。当我选择一个单元格时,我有单元格的背景颜色更改,但我希望标签中的文本颜色也会更改。目前,我正在使用以下代码:
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
cell = collectionView.dequeueReusableCellWithReuseIdentifier("targetCell", forIndexPath: indexPath) as UICollectionViewCell
var label : UILabel = cell.viewWithTag(100) as UILabel
label.textColor = UIColor.whiteColor()
}
但是,在选择单元格时,文本颜色不会使用新颜色更新。有什么想法吗?
答案 0 :(得分:4)
因为您正在将可重复使用的单元格出列并进行更新。
基本上,dequeueReusableCellWithReuseIdentifier:forIndexPath:
仅用于collectionView:cellForItemAtIndexPath:
。
使用cellForItemAtIndexPath
获取所选单元格。
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if let cell = collectionView.cellForItem(at: indexPath) {
let label = cell.viewWithTag(100) as? UILabel
label?.textColor = UIColor.white
}
}