enter image description here

Así que tengo esta vista de colección con celdas que contienen un botón de edición, ubicado en la esquina superior derecha. ¿Cómo conecto una acción en él?

Intenté agregar cell.editbutton.addTarget en collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell pero no detecta el evento touchUpInside.

6
Chris Mikkelsen 4 ene. 2017 a las 07:56

4 respuestas

En la celda UICollectionView, tome el botón (mediante programación o usando storyboard). Agregue acción para ese botón en el archivo de clase de celda y declare delegado en ese archivo de clase de celda y llame al mismo delegado en el método de acción de botón para realizar la acción de edición.

Luego implemente el mismo delegado en ViewController en el que ha creado la vista de colección

1
Sayali Shinde 4 ene. 2017 a las 05:34
protocol CollectionViewCellDelegte {
    func collectionViewCellDelegte(didClickButtonAt index: Int)
}

class ImageCollectionViewCell: UICollectionViewCell {
    var index = 0
    var delegte: CollectionViewCellDelegte? = nil

    @IBAction func buttonAction(_ sender: UIButton) {
        if let del = self.delegte {
            del.collectionViewCellDelegte(didClickButtonAt: index)
        }
    }
}
1
nilsi 9 jul. 2019 a las 13:13

Cree la salida de su UIButton en UICollectionViewCell, escriba In

func collectionView(_ collectionView: UICollectionView, 
                    cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    cell.button.tag = indexPath.row
    cell.button.addTarget(self, 
        action: #selector(self.yourFunc(), 
        for: .touchUpInside)
}

func yourFunc(sender : UIButton){
    print(sender.tag)
}

Asegúrese de que userInteraction esté habilitado para el botón y para UICollectionViewCell.

20
Antek 20 oct. 2017 a las 09:18

Como entendí, desea invocar la acción del botón de edición en lugar de didSelectItemAt: indexPath. Resolví esto anulando canBecomeFocused (return false), luego la acción del botón de edición estará involucrada tocando el botón de edición

-1
Surendra Kumar 2 jul. 2018 a las 14:09