У меня есть UIWebView
, в котором содержимое масштабируется для соответствия. Затем веб-просмотр будет изменен в соответствии с содержанием (см. Ниже) и будет работать как ожидалось.UIWebView изменяет размер на loadRequest
В веб-обзоре также есть указатель жесты, прикрепленный для загрузки новых страниц - при выполнении loadRequest
на webview
на следующей странице появляется мгновенное мерцание назад к начальной ширине веб-представления. Я подтвердил, что кадр изменяется с использованием NSTimer
и UILabel
s для отображения ширины кадра.
Вот код для повторной калибровки:
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;
}
Этот код вызывается LoadFinished
делегатом на WebView.
Я пробовал установить рамку прокруткиviewview webview и размер веб-представления ContentSize
.
Что может вызвать это мерцание?
человек, попробуйте проверить, много раз вызывается 'LoadFinished'. Подумайте, есть ли проблема. Кроме того, попробуйте другой html (например, веб-страницу Apple?). –