我在UICollectionView的原型单元格中添加了一个按钮,我想更新单元格标签中显示的属性:
非常感谢
编辑: 可能需要创建一个也获得indexPath.row但不知道如何做的函数。
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
//let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath)
//var cell :CounterCollectionViewCell!
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CounterCollectionViewCell
// Configure the cell
let myColor :UIColor = UIColor(red: 240/255, green: 179/255, blue: 28/255, alpha: 1.0)
let presentCounter = counters[indexPath.row]
cell.nameLabel.text = presentCounter.nameCD
cell.valueLabel.text = String(presentCounter.valueCD)
cell.backgroundColor = myColor
cell.layer.cornerRadius=10
return cell
}
@IBAction func masterCellAction() {
}
答案 0 :(得分:1)
on cellForItem将操作作为选择器添加到您添加到自定义单元格中的自定义按钮
cell?.customButton.addTarget(self,action:#selector(masterCellAction),for:.touchUpInside)
编辑:
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
cell.masterButton.addTarget(self,action: #selector(masterAction(_:)),for: .touchUpInside)
return cell
}
func masterAction(_ sender: UIButton)
{
let indexPath = collectionView?.indexPath(for: ((sender.superview?.superview) as! CounterCollectionViewCell))
let presentCounter = counters[indexPath.row] presentCounter.valueCD = presentCounter.valueCD + 1
}
答案 1 :(得分:0)
我认为你应该有两个这样的解决方案:
希望它有所帮助。
答案 2 :(得分:0)
您可以创建一个继承UIButton的自定义类(例如CustomButton)并添加NSIndexPath类型的属性indexPath。然后,制作所有类型为CustomButton的按钮,您就可以轻松知道要更新的单元格。