如何重置UIWebView的缩放?我已经在使用scalesPagesToFit = YES;

And*_*dre 9 iphone zoom reset uiwebview uiscrollview

过去一周我一直在寻找这个问题的答案.

我在UIScrollView中有一个UIWebView.一切都很好,但我希望UIWebView的内容在方向改变时重置其缩放.

在UIWebView内部的HTML中,我将视口的宽度(带元标记)设置为"设备宽度",然后在Obj-C端设置scalesPagesToFit = YES;

我试过用javascript重置缩放; 通过在运行时替换元标记; 重装; 访问UIWebView内部的UIScrollView; 等等...

但没有成功.

你们中的任何人都知道一个解决方法吗?

我唯一可以想到的是每次我们改变方向时重新创建UIWebViews,但这会使它们在渲染内容时闪现白色,这看起来很糟糕:(

有什么想法吗?

非常感谢,安德烈

Dar*_*ust 8

我只是猜测这里并没有尝试,但AFAIK UIWebView有一个UIScrollView子项.所以应该能够做到:

for (UIScrollView *scroll in [myWebView subviews]) {
    // Make sure it really is a scroll view and reset the zoom scale.
    if ([scroll respondsToSelector:@selector(setZoomScale:)])
        [scroll setZoomScale:1.0];
}
Run Code Online (Sandbox Code Playgroud)