как взаимодействовать с пользовательской ячейкой UICollectionViewCell - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть UICollectionViewController, который прокручивается по вертикали (как в виде таблицы).Я создал пользовательский UICollectionViewCell.Внутри пользовательской ячейки есть галочки.Мне нужно какое-то событие, чтобы щелкнуть, когда пользователь нажимает на галочку.

То, что я пробовал, было переопределено:

 override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        print("clicked")
    }

, но это выполняется только тогда, когда пользователь нажимает на ячейку.Но, как я уже говорил выше, ячейка содержит галочки ... Мне нужно выяснить, когда нажимается каждая отдельная галочка.

Возможно ли это?

1 Ответ

0 голосов
/ 10 февраля 2019

Вы можете добавить IBAction к классу UICollectionViewCell и обрабатывать переход от этого IBAction, если вам нужно что-то изменить на контроллере родительского представления, у вас есть несколько вариантов, вы можете использовать делегат или передать контроллерв ячейку.

На родительском контроллере представления:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CustomCollectionViewCell
    cell.controller = self 
    return cell
}

На классе UICollectionViewCell:

var controller: ParentViewController? 

@IBAction func checkmarkPressed(sender: UIButton) {

    print("checkmarkPressed")

   controller.someFunction()

}
...