Ячейка CollectionView выбирается при перелистывании - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть collectionView, показывающий ячейки.При перетаскивании / касании / скольжении пальца по элементу, если касание заканчивается на элементе, выделяется ячейка (переход к экрану подробностей).

Можно ли каким-либо образом ограничить выбор ячейки (didSelectItemAt indexPath) на простой кран?то есть он не должен выбирать ячейку, если палец перетащен на элемент, и касание заканчивается на нем.

Это поведение по умолчанию?

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

Спасибо

enter image description here

Ответы [ 2 ]

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

Вы можете использовать UITapGestureRecognizer, потому что он будет реагировать только на жест касания:

@objc func tapAction(_ sender: UITapGestureRecognizer) {
    // TODO: - Action you need
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: <CellReuseId>, for: indexPath) 
    let tap = UITapGestureRecognizer(target: self, action: #selector(tapAction(_:)))
    cell.contentView.addGestureRecognizer(tap)
    return cell
}

Но в этом случае didSelectItemAt не будет работать.

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

Добавь следующее в свой cellForItem

 let tap = UITapGestureRecognizer(target: self, action: #selector(cellTapped(tapGestureRecognizer:)))
    tap.numberOfTapsRequired = 1
cell.addGestureRecognizer(tap)

И добавь следующую функцию

@IBAction func cellTapped(tapGestureRecognizer: UITapGestureRecognizer)
{
//Do your required work.
}
...