2009-08-06 2 views
0

Всего здесь нет. Я пытаюсь понять, как реализовать переход от одного UIWebview к другому с помощью салфетки и по-прежнему иметь возможность прокручивать/масштабировать w/в каждом веб-просмотре.UIWebview просматривает другой UIWebiew

Каждый веб-просмотр должен нормально реагировать на все касания/жесты, если не обнаружено салфетки, а граница представления/содержимого находится на соответствующем краю экрана (например, просмотр прокрутки пейджинга).

Мое содержание - это строка html из объекта данных.

Любые советы будут оценены. Благодарю.

+0

Если UIWebView может обрабатывать прикосновения, проверить мой ответ на этот вопрос http://stackoverflow.com/questions/1242197/i-want-to-implement-the-flip-touch -event-in-iphone показывает, как обнаружить swipes. – Daniel

ответ

2

Похоже, что размещение UIWebview в UIScrollview отлично работает в iPhone 3.0 - «Doh !!!

+0

Apple рекомендует против этого, поскольку события касания могут запутаться между scrollview и веб-просмотрами. Ваш пробег может отличаться. – zekel

1

Возможно, есть причины поместить 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]; 
Смежные вопросы