在Swift中更改UICollectionView中的文本颜色

时间:2014-11-10 16:28:56

标签: ios swift

我有一个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()
}

但是,在选择单元格时,文本颜色不会使用新颜色更新。有什么想法吗?

1 个答案:

答案 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
    }
}