2009-12-17 13 views
6

, jeśli zmieniam ramkę interfejsu UIWebView (właściwość scalesPageToFit ma wartość TAK), co muszę zrobić, aby poziom powiększenia aktualnie wyświetlanej strony internetowej nadal się utrzymywał?Zmiana rozmiaru ramki UIWebView nie zmienia rozmiaru wewnętrznej zawartości

Załóżmy, że mam ramkę UIWebView o szerokości 200 pikseli i została ona powiększona do strony internetowej, dzięki czemu widoczna jest tylko jedna kolumna. Po zmianie szerokości na 300, nadal widzę kolumnę o tym samym rozmiarze i dodatkową przestrzeń po lewej i prawej stronie. Ale potrzebowałbym, aby nadal widziałem tylko tę kolumnę, ale większą.

Jakieś pomysły, co muszę zrobić, aby to osiągnąć? Próbowałem wielu rzeczy, ale nic nie działało tak daleko.

Nawiasem mówiąc, iPhone wbudowany w przeglądarce Safari robi dokładnie to samo (z tą samą stroną internetową, więc nie jest związane z treścią) podczas obracania iPhone'a ... Widzę tę samą treść, błąd większy, NIE więcej treści jak dzieje się tak z moją obecną wersją kodu.

Dzięki za pomoc! Markus

+0

Czy próbowałeś czegoś ze strony internetowej? CSS lub JS? – TahoeWolverine

+0

Czy znalazłeś jakieś rozwiązania? Proszę mi pomóc, mam do czynienia z tym samym problemem. – Mangesh

Odpowiedz

0

Co masz ustawione dla UIViewContentMode widoku na WWW (można również ustawić w IB w sekcji "Tryb" widoku)? Ponieważ zmieniasz rozmiar widoku, może to mieć coś wspólnego z tym. Tylko strzał w ciemność, ponieważ nie próbowałem, ale mam nadzieję, że to pomaga.

Możesz również spróbować wyłączyć scalesPageToFit przed przejściem i ponownie włączyć po.

1

EDIT: Lepsza odpowiedź:

mjdth jest poprawna, można użyć właściwości contentMode na UIWebView. Bardzo proste:

webView.contentMode = UIViewContentModeRedraw; 

Stary, bzdura odpowiedź:

Ten pracował dla mnie, ale ja pracowałem z lokalnych stron i małymi ilościami treści:

-(void)layoutSubviews 
{ 
    // Cause web view to reload content in order to display at new frame size 
    [webView reload]; 
} 

I Chciałbym zobaczyć lepsze rozwiązanie, które nie wymaga ponownego ładowania strony!

+0

Wygląda na to, że wywołanie [reload webView] (gdy zmieni się webView.frame) jest jedynym rozwiązaniem na teraz. –