Отслеживание UIControl и карты стиля презентации iOS 13 не работают вместе

#ios #ios13 #uicontrol

#iOS #ios13 #uicontrol

Вопрос:

Я использую AORangeSlider, который является подклассом UIControl , который переопределяет методы beginTracking continueTracking и endTracking .

Когда этот элемент управления добавляется в a viewController , который представлен в iOS 13 с использованием «стиля карт», он ведет себя очень странно. При перемещении элемента управления viewController он попытается провести пальцем вниз, и это прерывает работу ползунка, делает его ненадежным и некорректно работающим.

введите описание изображения здесь

Если я вместо этого представлю viewController UIModalPresentationFullScreen элемент управления, который работает правильно.

Есть ли способ разрешить AORangeSlider/UIControl работу со стилем представления карт iOS 13 и не конфликтовать с их событиями касания?

Комментарии:

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

Ответ №1:

Пришлось спросить об этом Apple, и они рекомендовали следующее решение, которое сработало:

 if (@available(iOS 13.0, *)) {
    
    for (UIGestureRecognizer *gestureRecognizer in self.navigationController.presentationController.presentedView.gestureRecognizers) {
        gestureRecognizer.enabled = NO;
    }
    
}