После просмотра этой быстрой демонстрации я настроил очень похожие методы swipeLeft
и swipeRight
. Я удостоверился, что два распознавателя жестов, которые я добавил в сцену, были установлены на «левый» и «правый» соответственно, и проверил, что мои @IBActions
связаны с правильными распознавателями.
По какой-то причине распознаватель смахивания влево работает, а смахивание вправо — нет (что еще более странно, поскольку большая часть того, что я читаю, обсуждает, как направления распознавателя по умолчанию устанавливаются вправо). Я тестировал это на iPhone 8 и симуляторе (SE + 10).
Когда я использую термины «влево» и «вправо», я предполагаю, что они означают направление движения (например, влево = начиная с правой стороны и двигая пальцем влево).
Мои методы следующие:
@IBAction func swipeLeft(_ sender: UISwipeGestureRecognizer) {
print("swiped left")
}
@IBAction func swipeRight(_ sender: UISwipeGestureRecognizer) {
print("swipe right")
}
ОБНОВЛЕНИЕ
Оба пузырька слева от IBActions (используемые для подключения к контроллеру представления) заполнены. Когда я нажимаю на них (пытался сделать снимок экрана, но он исчезает), они оба показывают, что они подключены (соответственно):
Main.storyboard -- Swipe Gesture Recognizer (R)
Main.storyboard -- Swipe Gesture Recognizer (L)
Однако, когда я щелкаю правой кнопкой мыши по распознавателям, их соединения различаются. Они оба показывают отправленные действия для соответствующих методов, но у (L) есть Referencing Outlet Collections
, а у (R) нет.
После подключения все работает. Не знаю, почему он не подключался изначально, но это решило проблему. Спасибо всем за помощь.