UISwitch является дочерним элементом UIResponder. Таким образом, вы можете попробовать использовать такие методы, как touchesBegan:withEvent:
, touchesMoved:withEvent:
и touchesEnded:withEvent:
для обнаружения действий пользователя.
Идея состоит в том, чтобы установить некоторый флаг в состояние «изменения не разрешены», когда пользователь начал касания. Измените его в зависимости от координат касания - например, измените состояние на «изменения разрешены», если пользователь переместил касание вправо более чем на 25 пикселей И вносите реальные изменения, когда касания заканчиваются, в зависимости от состояния конечного флага.