Dlaczego nie należy umieszczać UIWebView w UIScrollView?
Czy ktoś zna techniczne przyczyny unikania widoków internetowych wewnątrz widoków przewijania na iOS (zakładając, że chcesz wyłączyć przewijanie wewnątrz widoków internetowych)?
Jeśli spojrzyszw dokumentach Apple dla UIWebViewstwierdzają:
Ważny: Nie należy osadzać obiektów UIWebView ani UITableView w obiektach UIScrollView. Jeśli to zrobisz, może wystąpić nieoczekiwane zachowanie, ponieważ zdarzenia dotykowe dla dwóch obiektów mogą być pomieszane i niewłaściwie obsługiwane.
Moje wykształcone domysłyWygląda na to, że ostrzegają przed umieszczeniem widoku przewijania w innym widoku przewijania, ponieważ dotyku można mylić między wewnętrznym i zewnętrznym widokiem przewijania.
Ale istnieje bardzo ważny powód, aby chcieć to zrobićUIWebView
wewnątrz widoku przewijania. Widoki z sieci nie sąwłaśnie przewiń widoki.UIWebView
może łatwo wyświetlić szeroki zakressieć zawartość.
Jeśli nie ma potrzeby zezwalania na przewijaniew ciągu UIWebView
sam, a ty wyłączasz przewijanie za pomocą:
webView.userInteractionEnabled = NO;
lub
webView.scrollView.scrollEnabled = NO;
czy naprawdę jest jakiś problem z tym projektem?
Zastanawiam się, czy to częściowo artefakt oryginałuUIWebView
interfejs, gdzie ci nie dałbezpośredni (i udokumentowany) dostęp do jego osadzonegoUIScrollView
(aby móc łatwo wyłączyć przewijanie). Może to stwierdzenie w dokumentach Apple jest tego spuścizną?
Pytam, ponieważ utrzymuję aplikację (napisaną przez kogoś innego), która wykorzystuje garść widoków internetowych wewnątrz widoku przewijania, co pozwala przewijać między nimi w poziomie. Treść internetowa musi być uznana za stałą (nie można jej zmienić) i pokazuje tylko jedną stronę treści na stronę HTML. Użytkownik musi być w stanie przewijać strony, tak wieleUIWebViews
wewnątrz aUIScrollView
zostały do tego wybrane. Jak na razie wydaje się, że takmoże działać poprawnie.
Strony pokazują jednak obrazy pełnoekranowe, a wydajność przewijania jest problemem. Ale staram się ustalić, czy podstawowe zagnieżdżenie widoków internetowych wewnątrz widoków przewijania (o czym ostrzega Apple) jest naprawdę częścią problemu.