Ho un UIWebView
in cui il contenuto è ridimensionato per adattarsi. La visualizzazione Web viene quindi ridimensionata per adattarla al contenuto (vedere di seguito) e funziona come previsto.UIWebView ridimensiona su loadRequest
La visualizzazione Web presenta anche un gesto di sfioramento per caricare nuove pagine: quando si esegue uno webview
per la pagina successiva, sullo schermo webview
si verifica uno sfarfallio momentaneo della larghezza iniziale della visualizzazione Web. Ho confermato che il frame è stato modificato utilizzando uno NSTimer
e UILabel
s per visualizzare la larghezza del frame.
Ecco il codice per il ridimensionamento:
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;
}
Questo codice è chiamato dal LoadFinished
delegato sul WebView.
Ho provato ad impostare la cornice della vista a scorrimento della webview e le dimensioni della vista web ContentSize
.
Cosa potrebbe causare questo sfarfallio?
man, prova a verificare ora molte volte 'LoadFinished' è chiamato. Pensa che ci sia un problema. Inoltre, prova un altro html (ad esempio la pagina web di Apple?). –