如何通过单击更改集合视图单元格中的标签颜色

时间:2016-07-20 16:28:40

标签: ios swift uicollectionview

我有一个带有一些单元格的集合视图。在我的单元格内,我有一个标签显示国家/地区名称列表。每次单击每个单元格标签时,我都会在集合视图下方的表格视图中显示一些数据。

当我按任何单元格标签时,我需要将该标签的文本变为红色。其他标签名称应为黑色。

怎么做?我已经尝试了下面的代码,但是当我在该单元格中选择任何标签名称时,所有单元格标签都变为红色。

我该如何解决这个问题?

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {


        if let cell = collectionView1.cellForItemAtIndexPath(indexPath) {

            var label = cell.viewWithTag(100) as? UILabel


            label!.textColor = UIColor.redColor()

        }
    }

3 个答案:

答案 0 :(得分:2)

您的标签未更新,因为您需要刷新单元格。我可以为您提供最佳解决方案 - 在自定义单元格类

中使用setSelected方法更改标签颜色

编辑:

override var setSelected(selected: bool) {
    if (selected) { 
       self.youLabel!.textColor = UIColor.redColor()
    } else {
       self.youLabel!.textColor = UIColor.blackColor()
}

这是自定义类中的函数示例。对不起,如果有错误 - 从iPhone回答

答案 1 :(得分:0)

Swift 4

在你的手机课上:

override var isSelected: Bool {
    didSet {
        label.textColor = .red
    }
}

来自代表班:

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    cell.isSelected = true
}

答案 2 :(得分:-1)

我用你的代码创建,它对我有用。但我认为,最好使用自定义collectionview单元格进行创建。

demo project