Mam UIWebView
, w którym zawartość jest skalowana do rozmiaru. Rozmiar strony internetowej jest następnie dostosowywany do zawartości (patrz poniżej) i działa zgodnie z oczekiwaniami.Rozmiar UIWebView zmienia się na loadRequest
Podgląd strony ma również gest machnięcia dołączony do ładowania nowych stron - podczas wykonywania loadRequest
na webview
dla następnej strony następuje chwilowe migotanie do początkowej szerokości widoku internetowego. Potwierdziłem, że ramka jest zmieniana przy użyciu NSTimer
i UILabel
s, aby wyświetlić szerokość ramki.
Oto kod do ponownego zaklejania:
string bookHeightS = bookWebview.EvaluateJavascript ("document.getElementsByTagName('body')[0].scrollHeight");
string bookWidthS = bookWebview.EvaluateJavascript ("document.getElementsByTagName('body')[0].offsetWidth");
nfloat bookHeight = 0;
nfloat.TryParse (bookHeightS, out bookHeight);
nfloat bookWidth = 0;
nfloat.TryParse (bookWidthS, out bookWidth);
nfloat scaling = bookWebview.Frame.Height/bookHeight;
nfloat initialWidth = bookWebview.Frame.Width;
nfloat newWidth = scaling * bookWidth;
CGRect frame = new CGRect (bookWebview.Frame.Location, new CGSize (newWidth, bookWebview.Frame.Height));
if (frame.Width != bookWebview.Frame.Width) {
bookWebview.Frame = frame;
}
Kod ten jest nazywany przez LoadFinished
delegata na WebView.
Próbowałem ustawić ramkę przewijania widoku przeglądarki i rozmiaru widoku WWW ContentSize
.
Co może powodować migotanie?
człowiek, spróbuj sprawdzić teraz wiele razy 'LoadFinished' jest wywoływana. Pomyśl, że istnieje problem. Spróbuj też użyć innego html (np. Strony Apple?). –