UISlider и Pan Gesture Recognizer не смешиваются - PullRequest
0 голосов
/ 04 декабря 2018

Как указано здесь: Жест панорамирования мешает UISlider и Проблема с жестами: UISwipeGestureRecognizer + UISlider Я не могу заставить UISlider работать с жестом панорамирования, где в моем контроллере навигации есть классэто имеет возможность кнопки «назад».

В ответах упоминается, что я должен добавить делегата в свой класс как таковой

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
    if let view = touch.view, view == slider {
        return false
    }
    return true
}

Однако этот метод никогда не вызывается.Я испробовал около 15 способов установить делегата для этого класса, но я, честно говоря, понятия не имею, что устанавливать в делегате.

let myScreenEdgePanGestureRecognizer = UIScreenEdgePanGestureRecognizer(target: self, action:nil)
myScreenEdgePanGestureRecognizer.delegate = self

Ничего подобного не работает.Может ли кто-то четко объяснить, как я могу решить эту проблему.Я попробовал каждый подход на первых 2 страницах Google.Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Попробуйте объявить ребра

В Swift это будет выглядеть как

let myScreenEdgePanGestureRecognizer = UIScreenEdgePanGestureRecognizer(target: self, action:nil)
myScreenEdgePanGestureRecognizer.delegate = self
myScreenEdgePanGestureRecognizer.edges = .left //.right, .top, .bottom
0 голосов
/ 04 декабря 2018

Если вы видите этот код более точно, то код проверяет класс как UISlider, а не как объект UISlider.

Так что в swift вы должны написать так

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
    let view = touch.view
    if  view is UISlider { // check class as a UISlider
        return false
    }
    return true
}

Я не запускал и не проверял свой код, если требуется какое-либо редактирование, тогда сделайте и, если вам нужна какая-либо помощь, добавьте комментарий.

Редактировать

ДляUIScreenEdgePanGestureRecognizer, проверьте этот пост: https://www.hackingwithswift.com/example-code/uikit/how-to-detect-edge-swipes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...