UIWebview смахивает на другой UIWebiew - PullRequest
0 голосов
/ 07 августа 2009

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

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

Мое содержимое представляет собой HTML-строку из объекта данных.

Любые советы будут оценены. Спасибо.

Ответы [ 2 ]

2 голосов
/ 13 августа 2009

Похоже, что помещение UIWebview в UIScrollview прекрасно работает в iPhone 3.0 - 'Doh !!!

1 голос
/ 31 марта 2012

Могут быть причины для помещения 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];
...