В настоящее время я использую UICollectionView
с несколькими ячейками в нем. UICollectionView
прокручивается горизонтально для перемещения между ячейками.
Мой вопрос: Есть ли способ вызвать func (didSelectItemAt), щелкнув по ячейке , когда ее UICollectionView
находится на прокрутке ?
Вот гифка.
Сразу после перетаскивания ячейки влево для прокрутки, я непрерывно щелкаю по ячейке, чтобы вызвать func (didSelectItemAt), но она получает вызов только после завершения прокрутки. Возможно ли, чтобы функция (didSelectItemAt) вызывалась сразу после нажатия на ячейку при прокрутке?
Вот мой код для collectionView делегата и источника данных.
extension CardViewController : UICollectionViewDelegate,UICollectionViewDataSource {
public func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return cardCount
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = cardCollectionView.dequeueReusableCell(withReuseIdentifier: "card", for: indexPath) as! CardCell
cell.isFront = cellsSelectedStatus[indexPath.row]
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = cardCollectionView.cellForItem(at: indexPath) as! CardCell
UIView.transition(with: cell, duration: 0.3, options: [.transitionFlipFromLeft,.allowUserInteraction], animations: nil, completion: nil)
cellsSelectedStatus[indexPath.row] = !(cellsSelectedStatus[indexPath.row])
cell.isFront = cellsSelectedStatus[indexPath.row]
print("did select")
}
Источник данных и делегат Collectionview вызываются в viewDidLoad
.
Я знаю, что есть allowUserInteraction
из UIViewAnimationOptions
, который позволяет нажимать на вид во время его анимации. Есть ли более смелый код для func (didSelectItemAt)?
Нет связи, и UIGestureRecognizer присоединен к ячейке или представлению коллекции.
Пока я установил
isUserInteractionEnabled
,
isMultipleTouchEnabled
,
allowsMultipleSelection
в true для collectionView,
но он все еще ведет себя так же.
Я использую Swift3, Xcode9.
Заранее спасибо.