Mam UIWebView
który wewnątrz UIScrollView
(widok przewijania zawiera inny komponent)
Próbowałem włączyć multitouch zarówno na konstruktorze Interface lub programowej na UIWebView
ale nadal nie można powiększyć do html, muszę obsługiwać zarówno powiększanie u UIScrollView
i UIWebView
? Albo coś, czego nie ustawiłem?
objective-c
ios
cocoa-touch
uiwebview
zoom
kalendarz
źródło
źródło
scalesPageToFit = YES
działa, ale zmienia domyślny rozmiar treści, spójrz na moją odpowiedź, która będzie dla ciebie pomocna.Odpowiedzi:
MUSISZ ustawić scalesPageToFit = YES dla dowolnego szczypania i powiększania, aby działało na UIWebView
źródło
OK, musisz wykonać oba powyższe, ale także poniższe. Miałem widok sieciowy w głównym widoku, ale to nie zadziałało.
<UIScrollViewDelegate>
w kontrolerze widoku, przeciągnij delegata widoku przewijania do kontrolera widoku w programie Interface Builder i zaimplementujviewForZoomingInScrollView
metodę. To musi zwrócić wskaźnik do UIScrollView (zwrócić myScrollView).źródło
Za pomocą JavaScript możesz kontrolować poziom powiększenia, chociaż rozwiązanie, które znalazłem, nie wygląda gładko.
Powiedz, że masz w
<head>
:Aby powiększyć do 4x i nadal pozwolić użytkownikowi na zmianę powiększenia, zmień zawartość dwukrotnie:
Przełączanie szerokości jest bardzo ważne - w przeciwnym razie Mobile Safari ma poważne błędy związane z przemalowywaniem (z powodu nadmiernej optymalizacji).
Nie możesz tak po prostu ustawić
initial-scale
ponownie - za drugim razem jest to ignorowane.źródło
Musisz zaimplementować metodę viewForZoomingInScrollView w swoim kontrolerze, w przeciwnym razie powiększanie nic nie da. (Naprawdę nie wiem, dlaczego to powinno być potrzebne, ale proszę bardzo.)
Aby uzyskać szczegółowe informacje, zobacz http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html .
źródło