Могут быть причины для размещения UIWebView в ScrollView, но поддержка ОБА пролистывания и прокрутки в UIWebView не является одной из них. UIWebView сам по себе прекрасно обрабатывает прокрутку страницы, а контроллер представления, которому он принадлежит, может поддерживать пролистывание, чтобы перейти на что-то еще, например, на другой контроллер, выполнив следующие действия:
1) В viewController, которому принадлежит WebView, реализуйте метод UIGestureRecognizerDelegate:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gr shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGr
{
return YES;
}
Это позволяет распознавателю жестов, который вы реализуете в своем webViewController, ТАКЖЕ получать жесты из UIWebView. В противном случае UIWebView потребляет их все и не передает их вам.
2) Чтобы различать свайпы и прокрутку страницы. В фактическом распознавателе жестов, который вы добавляете в UIWebView, установите количество касаний, необходимых для вызова «Swipe», примерно 2 или 3. Это позволяет прокручивать страницу одним пальцем и возвращает SwipeGesture только при 2 или 3 пальцах. используются. Сделайте это примерно так:
UISwipeGestureRecognizer *swipeGR;
swipeGR = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeLeft)] autorelease];
swipeGR.direction = UISwipeGestureRecognizerDirectionLeft;
swipeGR.delegate = self;
swipeGR.numberOfTouchesRequired = 2;
[myWebView addGestureRecognizer:swipeGR];
person
Cliff Ribaudo
schedule
31.03.2012