Возможно, есть причины поместить UIWebView в ScrollView, но поддержка BOTH прокрутки и прокрутки в 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];
Если UIWebView может обрабатывать прикосновения, проверить мой ответ на этот вопрос http://stackoverflow.com/questions/1242197/i-want-to-implement-the-flip-touch -event-in-iphone показывает, как обнаружить swipes. – Daniel