0

Имея некоторые проблемы, связанные с тем, что это переопределяет метод суперкласс - продолжать получать ошибку, метод не отменяет какой-либо метод из его суперкласса ". Представление коллекции и панорама настроены, я просто хочу отключить боковое панорамирование (если это слово).Переопределение UIPanGestureRecognizer для UICollectionView

Я придерживаюсь это право в нижней части моего класса:

override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool { 
    if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer { 
     let translation = panGestureRecognizer.translationInView(collectionView!) 
     if fabs(translation.y) > fabs(translation.x) { 
      return true 
     } 
     return false 
    } 
    return false 
} 

Любые идеи? Я выложу свой jazzy collectionview, и это способности панорамирования, как награды для тех, кто вносит свой вклад.

+0

Я просто проверял дважды, он работает на моем конце. Проверить орфографические ошибки? Однако он выглядит правильно в этой записи. –

ответ

1

Вы не можете переопределить этот метод, потому что он не является частью вашего суперкласса (UICollectionView). Вам необходимо принять протокол UIGestureRecognizerDelegate в своем классе и удалить override.

Предполагая, что вы создали UIPanGestureRecognizer, либо в раскадровке, либо программно, вам нужно установить делегат от UIPanGestureRecognizer до self всякий раз, когда ваш просмотр загружается.

Кроме того, не забудьте добавить panRecognizer в свой коллекционный вид.

panGesture.delegate = self 
collectionView.addGestureRecognizer(panGesture) 
+0

Я сделал все, что вы предложили, за исключением удаления «переопределения». Я боялся, что это не будет названо без него, но ты прав, мистер Дж ... ты исправил мою проблему. Огромное спасибо. –

Смежные вопросы