Проблема с ползунком внутри режима горизонтальной прокрутки в IOS

#uiscrollview #swift3 #uislider

#uiscrollview #swift3 #uislider

Вопрос:

В моем макете есть несколько sliders в scroll view , которые прокручиваются по горизонтали. Проблема в том, что когда я пытаюсь перетащить большой палец ползунка, он не перемещается, вместо этого сам вид прокрутки прокручивается горизонтально. Как это исправить? (В Swift)

Ответ №1:

Решение Swift 3

Я столкнулся с аналогичной проблемой и исправил ее, установив

 scrollView.delaysContentTouches = false
  

Объяснение

Согласно документам Apple

Если значение этого свойства (delaysContentTouches) равно true, режим прокрутки задерживает обработку жеста касания до тех пор, пока не сможет определить, является ли прокрутка намерением. Если значение равно false , режим прокрутки немедленно вызывает touchesShouldBegin(_:with:in:) . Значение по умолчанию равно true.

Как следует из названия, это задерживает касание содержимого (т. Е. снижает приоритет действия subview), что приводит к безответственному обновлению содержимого subview во время прокрутки.

Когда для этого свойства установлено значение false, оно отдает приоритет действию вложенного просмотра (путем немедленного вызова touchesShouldBegin(_:with:in:)) что приводит к адаптивному обновлению содержимого вложенного просмотра.

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

1. у меня такая проблема. Я использую horizantal scrollview в parentviewcontroller. я отключаю прокрутку, когда я касаюсь ползунка в chaildviewcontroller, он не работает. Пожалуйста, любые предложения.

Ответ №2:

Возможно, вы называете UISlider «ленивой переменной». Давайте изменим его на «Разрешить»