我有一个带有一些单元格的集合视图。在我的单元格内,我有一个标签显示国家/地区名称列表。每次单击每个单元格标签时,我都会在集合视图下方的表格视图中显示一些数据。
当我按任何单元格标签时,我需要将该标签的文本变为红色。其他标签名称应为黑色。
怎么做?我已经尝试了下面的代码,但是当我在该单元格中选择任何标签名称时,所有单元格标签都变为红色。
我该如何解决这个问题?
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
if let cell = collectionView1.cellForItemAtIndexPath(indexPath) {
var label = cell.viewWithTag(100) as? UILabel
label!.textColor = UIColor.redColor()
}
}
答案 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单元格进行创建。