Захват касаний в UIWebView - PullRequest
2 голосов
/ 02 января 2012

Возникают проблемы с захватом сенсорных событий в UIWebView.Хотите иметь возможность ощутить прикосновения к словам при прокрутке HTML-страницы с целью вставки гиперссылок в HTML [который я полностью контролирую] в точке касания.Очевидно, что какой-то существующий агент уже ощущает прикосновения, потому что я получаю всплывающее окно «Копировать или определить» с увеличительным стеклом.

Мне удалось захватить сенсорные события в другом пользовательском UIViewController в моем приложении, которое не имеет UIWebView, поместив:

self.view.userInteractionEnabled = YES;
self.view.multipleTouchEnabled = YES;

в viewDidLoad и поместив

- (BOOL) canBecomeFirstResponder
{
 NSLog(@"canBecomeFirstResponder");
 return YES;
}

в реализацию.Затем «touchesBegan» вызывается всякий раз, когда я касаюсь чего-либо на контроллере представления.

Но тот же код не действует на пользовательском контроллере представления, где большая часть экрана покрыта UIWebView.Любопытно, что прикосновения в маленьком UIToolBar внизу действительно вызывают «прикосновения начались», но что-то в UIWebView опережает мой «touchesBegan».

Есть ли способ захватить эти события, не отключая все, что хочет UIWebViewсделать?Я не хотел бы терять прокрутку и другие функции.

Спасибо.С Новым Годом.

1 Ответ

2 голосов
/ 02 января 2012

Захватить прикосновение к UIWebView - Ящик боли Пандоры.Поскольку вам нужны только касания, вероятно, проще всего сделать размещение UIView с [UIColor clearColor] в качестве цвета фона поверх веб-представления.В этом представлении переопределите hitTest: (вместо переопределения touchesBegan: и т. Д.) И используйте его для определения местоположения крана.hitTest: возвращает UIView, поэтому, если вы хотите, чтобы веб-представление реагировало на нажатие, просто верните веб-представление из переопределения hitTest:;в противном случае возвращает представление наложения, которое затем получит все методы touches....

...