我有一个包含很多项目的UICollectionView。我正在商店中使用它,我想在单击它时编辑单元格中的内容。当单击单元格以进行测试时,我删除了背景,但是单击单元格时却永远不会删除。当我添加打印功能时,它仍然会打印出来,因此我知道此方法正在被调用。
我有一个具有以下功能的UICollectionView类:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! Shop1CollectionViewCell
cell.clickedOn()
collectionView.reloadItems(at: [indexPath])
}
我有一个关于单元格的课程:
class Shop1CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var Label: UIView!
@IBOutlet weak var background: UIImageView!
func clickedOn(){
background.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
}
}
有什么我可以做的,它将更新单元格中的内容。似乎它已以某种方式锁定,无法更改,或者一直在重置图像。
答案 0 :(得分:4)
替换此
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! Shop1CollectionViewCell
使用
let cell = collectionView.cellForItem(at: indexPath) as! Shop1CollectionViewCell
由于dequeueReusableCell
返回的另一个单元格不是您单击的单元格,因此您也可以将此更改保存为该单元格,以免被其他索引出队