Как заставить UIButton реагировать только на прикосновение, а не на перетаскивание - PullRequest
0 голосов
/ 09 февраля 2011

Взгляните на этот метод:

[textButton addTarget:self action:@selector(articleModalWillAppear:) forControlEvents:UIControlEventTouchDown];

При нажатии кнопки вызывается articleModalWillAppear:. Это хорошо работает. Проблема в том, что кнопка также вызывает действие при ее перетаскивании. (Кнопка большая и содержит текстовый абзац)

Я поставил шесть таких кнопок как подпредставления UIScrollView (с UIPageControl). Это хорошо работает при перетаскивании UIScrollView по горизонтали. Но при перетаскивании по вертикали всплывают модальные виды, потому что при перетаскивании пальца по кнопке кнопка считает это касанием, а касание вызывает articleModalWillAppear:.

Если вы все еще не понимаете мою проблему, подумайте о приложении New York Times для iPad. Вы можете перетащить страницы по горизонтали. Вы можете нажать на описание статьи, чтобы перейти к полному просмотру статьи. Но ничего не происходит, когда вы перетаскиваете вертикально внутри описания статьи. Как этого добиться?

Ответы [ 2 ]

1 голос
/ 09 февраля 2011

use forControlEvents:UIControlEventTouchUpInside

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

1 голос
/ 09 февраля 2011

Используйте другое событие, например ::100100

[textButton addTarget:self action:@selector(articleModalWillAppear:) forControlEvents:UIControlEventTouchUpInside];

UIControlEventTouchUpInside наиболее часто используется в этом случае.

...