Вам нужно принять дизайнерское решение: если ваш контент предназначен для горизонтальной прокрутки, то пользователь проводит пальцем по переключателю неоднозначно - означает ли это, что он хочет прокрутить или переключить переключатель?
Самое простое решение - изменить ваш пользовательский интерфейс, чтобы устранить эту неоднозначность. Например, если contentSize
прокрутки не шире границ вида прокрутки, то он не может прокручиваться по горизонтали, и горизонтальное перелистывание всегда активирует переключатель.
Если вы хотите разрешить горизонтальную прокрутку, то имеет смысл заменить UISwitch
на UIButton
, который переключается при касании, аналогично кнопке воспроизведения / паузы.
С другой стороны, если вы не хотите изменять свой пользовательский интерфейс, вы всегда можете просто сделать:
myScrollView.delaysContentTouches = NO;
Это заставит ваш переключатель немедленно «получить» прикосновения, вместо того, чтобы они сначала пошли на UIScrollView
. Подробнее здесь . (Вы также можете установить это логическое значение в Интерфейсном Разработчике, как указано Squeegy.)