Могут быть причины для помещения UIWebView в ScrollView, но поддержка ОБА и прокрутки в UIWebView не является одной из них. UIWebView прекрасно справляется с прокруткой по странице, а контроллер представления, которому он принадлежит, может поддерживать свайп, чтобы перейти на что-то другое, например, другой контроллер, выполнив следующие действия:
1) В viewController, который владеет WebView, реализуйте метод UIGestureRecognizerDelegate:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gr shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGr
{
return YES;
}
Это позволяет распознавателю жестов, который вы реализуете в вашем webViewController, ТАКЖЕ получать жесты из UIWebView. В противном случае UIWebView потребляет их все и не передает их вам.
2) Чтобы провести различие между Swipes и прокруткой на странице. На фактическом распознавателе жестов, который вы добавляете в UIWebView, установите количество касаний, которое необходимо назвать «проведением», примерно на 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];