Пользовательский UIControl получает touchCancelled при прокрутке; как отключить прокрутку?

Я пишу замену UISwitch (с настраиваемой графикой). Я переопределил touchMoved и друзья, так что вы можете перетаскивать виджет между Yes и No, так же, как с UISwitch.

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

Как я могу сказать UIKit, что мне нужен эксклюзивный контроль над этими касаниями, в действительности отключение прокрутки в touchBegan и включение прокрутки в завершенном / отмененном? Я уверен, что есть что-то очевидное, но я просмотрел заголовки и документацию для UIControl, UIResponder, UIView и UIScrollView и ничего не нашел.

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

7
задан nevyn 22 March 2011 в 10:54
поделиться