Направление касания в тесте - PullRequest
0 голосов
/ 05 октября 2009

Я разрабатываю приложение для iphone, которое загружает некоторую информацию в веб-просмотр. Я использовал hittest делегата, чтобы поймать касание, Теперь мне нужно найти направление движения касания. Есть ли способ найти это ... Заранее спасибо

Ответы [ 2 ]

1 голос
/ 05 октября 2009

Я не уверен, что означает «использованный Hittest Delegate», но я думаю, что вам нужно сделать, чтобы поймать прикосновения, как говорил @MrMage. Однако для этого не нужно создавать подкласс UIWebView.

UIResponder предоставляет следующее:

– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:

Вы должны иметь собственный подкласс UIView в качестве суперпредставления вашего UIWebView в конструкторе интерфейсов. Послушайте эти события и подтвердите, что они вам известны. Похоже, вы знакомы с Interface Builder, поэтому я не буду вдаваться в подробности.

«Найти направление движения прикосновения» немного расплывчато. Я предполагаю, что вы хотите определить, прошло ли движение вверх или вниз, влево или вправо от начальной точки к конечной точке. Вы можете сделать это очень легко, сравнивая касание при прикосновении. Начальное касание и касание. Закругленные координаты касания.

Примерно так должно работать:

if ((endTouch.x - startTouch.x) > 0) { NSLog(@"swipe right"); }
else if ((endTouch.x - startTouch.x) < 0) { NSLog(@"swipe left"); }

Помните, что для любого данного прикосновения создается экземпляр UITouch, и этот адрес памяти не изменяется. Таким образом, вы можете безопасно сравнивать адреса UITouch, чтобы убедиться, что вы отслеживаете один и тот же, что очень полезно, когда есть несколько касаний (например, NSSet, который вы получаете на сенсорных событиях). Руководство по обработке событий - отличный ресурс.

0 голосов
/ 05 октября 2009

Вы можете попробовать создать подкласс UIWebView и переопределить методы touchesBegan, touchesMoved и т. Д.

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