UIWebview переходит к другому UIWebview

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

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

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

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


person Sethquatch    schedule 06.08.2009    source источник
comment
Если UIWebView может обрабатывать прикосновения, проверьте мой ответ на этот вопрос stackoverflow.com/questions/1242197/ показывает, как обнаруживать пролистывания   -  person Daniel    schedule 07.08.2009


Ответы (2)


Похоже, что добавление UIWebview в UIScrollview отлично работает в iPhone 3.0 — «Дох!!!

person Sethquatch    schedule 13.08.2009
comment
Apple не рекомендует этого делать, так как события касания могут быть перепутаны между просмотром прокрутки и веб-просмотром. Ваш пробег может отличаться. - person zekel; 24.01.2011

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