点击收集视图单元格时,更改标签文本时遇到问题。我尝试使用didSelectItemAt
和didHighlightItemAt
,但没有任何效果。这是我的手机的样子:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollectionViewCell
cell.subjectName.text = "Selected"
}
答案 0 :(得分:2)
您需要
let cell = collectionview.cellForItem(at: indexPath) as! CollectionViewCell
cell.subjectName.text = "Selected"
但是请注意,由于单元格出队,如果仍在显示该单元格,则此更改是暂时的,如果滚动,您可能会在该索引内找到另一个文本,因此请在集合的数组模型中反映更改并重新加载该indexPath
var statesArr = ["Selected","Default",,,,,,,,,,]
在didSelectItemAt
内
statesArr[indexPath.row] = "Selected"
self.collectionView.reloadItems(at:[indexPath])
在cellForItemAt
内
let cell = ///
cell.subjectName.text = statesArr[indexPath.row]