Если указан c CollectionViewCell, сделайте что-нибудь - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь выяснить, как запрограммировать мой collectionView, чтобы определить, какая ячейка нажата, и затем я хочу сделать что-то другое для каждой ячейки, используя метод if.

При этом:

   @objc func tap(_ sender: UITapGestureRecognizer) {

       let location = sender.location(in: self.collectionView)
       let indexPath = self.collectionView.indexPathForItem(at: location)



       if let index = indexPath {
          print("Got clicked on index: \(index)!")



       }

Мой отладчик говорит, например: «Кликнул по индексу: [0, 3], когда я щелкаю по ячейке 3. Я хочу выполнить sh, например, если щелкнуть по ячейке 3, сделать что-нибудь. И разные действия для всех остальных ячеек.

Я пробовал разные методы, такие как этот, например

 if indexPath?.section == 3 {

            NSLog("Tapped 3")
        }

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

1 Ответ

0 голосов
/ 12 апреля 2020

вам не нужно обрабатывать событие клика вручную. Используйте эту функцию для получения события щелчка ячейки.

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: IndexPath) {
 //print(indexPath.row) // this print 2 when you click on 3rd cell(because indexes starting from 0)

if indexPath.row == 2{
 //the action you want to do when 3rd cell click
}
 // do something you want

}
...