在Swift 4.0中轻按集合视图单元格时更改标签的文本

时间:2018-10-02 21:02:31

标签: ios swift uicollectionview

点击收集视图单元格时,更改标签文本时遇到问题。我尝试使用didSelectItemAtdidHighlightItemAt,但没有任何效果。这是我的手机的样子:

Cell

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollectionViewCell
    cell.subjectName.text = "Selected"
}

1 个答案:

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