iOS, как игнорировать родительское представление, получает событие касания после просмотра дочернего элемента

Пожалуйста, взгляните на картинку ниже:

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

У меня есть пользовательский UIControl как RangeSlider который я реализовал, следуя этому руководству. Я размещаю RangeSlider внутри FilterViewController который может перемещаться или выходить.

В классе RangeSlider я использовал 3 метода UIControl : beginTracking, continueTracking, endTracking для обработки события касания, когда пользователь перемещает индикатор слайдера.

В классе FilterViewController я использовал UIPanGestureRecognizer для обработки события касания при UIPanGestureRecognizer пользователя или выходе пользователя.

проблема

Когда я пытаюсь переместить индикатор слайдера, ViewController также перемещается. И индикатор немного движется. Кажется, что и дочерний вид, и родительский взгляд получили событие касания.

Вопрос

Как я могу игнорировать родительское представление ( ViewController ) получать событие касания?

Вы можете написать это в viewDidLoad ().

 self.view.isUserInteractionEnabled = false 

Вы должны реализовать метод вашего делегата PanGestureRecognizer

gestureRecognizerShouldBegin (_ 🙂

редактирование: пожалуйста, попробуйте

 override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { guard let view = gestureRecognizer.view, view.isKind(of: UIControl.self) else { return true } return false } 

Надеюсь это поможет.

Это должно помочь в FilterViewController (при условии, что это сенсорный делегат)

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ([touch.view isDescendantOfView:self.tableView]) { return NO; } return YES; } 

Извините, например, в объективе-c, вы можете легко преобразовать его в быстрый. Это означает, что таблица или scrollview, которые вы используете, не будут реагировать на касания своих подзонов (предполагая, что RangeSlider является дочерним элементом представления в виде таблицы). Дайте мне знать, если это не поможет, я заставил эти проблемы в прошлом несколькими способами!

  • Почему я получаю развертку ошибок Необязательно, если оно имеет значение?
  • Нажатие кнопки навигации по нажатию кнопки
  • Как добавить UILabel для каждой песни?
  • PFFile продолжает возвращать нуль, хотя данные регистрируются и устанавливается изображение
  • swift не может вызвать isKindOfClass со строкой
  • Хранилище iCloud, используемое приложением?
  • Множество условий для подготовки к segue не работает
  • Как включить тестирование для Framework в режиме Release?
  • как сделать вид контейнера прозрачным только не всем?
  • Переключатели в таблицах
  • Почему Xcode Show «Неоднозначное использование« myMethod »при реализации резервного копирования с помощью @available?
  • Interesting Posts

    Строки ios – main.storyboard не найдены в базовой локализации

    resignFirstResponder не отменяет клавиатуру

    Обнаружение перехода экрана (переключения) по всему миру в iOS с помощью Swift

    Ошибка AFJSONRequestOperation с параметром «data nil» Ошибка NSJSONSerialization

    NSImage и UIImage предоставляют различные представления NSData

    Показать UIAlertView или UIViewController в Логотипе Tweak

    Воспроизведение видеоизображения UIWebview – ограничено jw-проигрывателем в формате HTML

    Неявное преобразование из Objective-C Указатель на int * не разрешен с помощью ARC

    UItableviewcell вокальный дисплей, они просто не могут правильно получить ширину экрана с iphone6 ​​+. (ObjC)

    Отключить автоматический полноэкранный режим YouTube на iPhone

    Как отключить портретную ориентацию для Ipad в swift 2 и xcode 7

    Печать всех строк таблицы, когда она слишком велика, чтобы поместиться на экране

    Как использовать жест жеста и жестом салфетки в качестве альтернативы на одном и том же экране?

    Swift после регистрации переместится на вторую или любую другую вкладку UITabBarController

    Почему подкласс Swift UIView с методом удобства init () запускает бесконечный цикл после обновления до Swift 3.0?

    Давайте будем гением компьютера.