UIView забрать статус первого респондента - PullRequest
1 голос
/ 02 марта 2011

Представьте себе ситуацию, когда у вас есть UITableView , помещенный в UIScrollView .Если вы нажмете на представление таблицы и начнете вертикальное перемещение - UITableView станет первым респондентом и будет прокручивать по вертикали.Но если вы будете двигать пальцем по горизонтали - UIScrollView станет первым респондентом и будет прокручивать по горизонтали.

У меня похожая ситуация, но вместо UIScrollView у меня есть простой объект UIView, который перехватывает - (void) touchsMoved: события и перемещение (своего рода ScrollView).

Но как мне сделать тот же трюк, который UIScrollView делает - определяет горизонтальное перемещение и убирает статус первого респондента из UITableView ???

Заранее спасибо !!!

Ответы [ 2 ]

0 голосов
/ 13 апреля 2012

Вы пытались добавить UIPanGestureRecodnizer в представление. После этого вы сможете установить @selector, который позволит вам обрабатывать рассматриваемое событие. Также с панорамированием вы можете выбрать только изменение элемента x и оставить элемент y в покое. Более того, с элементом pan, прикрепленным к представлению, вам не придется беспокоиться о наличии первого респондента. Элементы панорамирования могут много времени использоваться в качестве элемента смахивания, если у вас было ускорение или замедление. Кроме того, я бы сказал, что вы также можете добавить элемент UISwipeGestureRecognizer влево и вправо, но я не думаю, что вы получаете информацию, например, как далеко пользователь провел пальцем по значению, если вы хотите, чтобы экран отскочил назад, когда пользователь не сделал это достаточно далеко, чтобы вправо или влево, то у вас не будет такой опции. Кроме того, смахивание не даст тот же эффект, что и UIScrollView, но UIPanGestureRecognizer может, если вы сделаете небольшое дополнительное кодирование. Дополнительное кодирование будет наблюдать за положением значения x и затем использовать небольшую анимацию, чтобы представление привязывалось вправо или влево, когда пользователь отпускает представление. Кроме того, если вы правильно установите x, вид должен следовать за пальцем.

0 голосов
/ 02 марта 2011

Вы можете попробовать переопределить canBecomeFirstResponder в своем представлении и вернуть соответствующее значение в соответствующее время.

...