UIWebView缩放页面使得不需要水平滚动

Mas*_*son 0 scaling objective-c uiwebview ipad ios

有没有办法在UIWebView中缩放网页,以保持宽高比,但减少了水平滚动阅读文章的需要,例如.垂直滚动很好,我只是不希望用户不得不经常水平来回滚动来阅读文章的每一行.谢谢!

编辑:我用来创建视图的代码

    _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, [[self view] frame].size.width, [[self view] frame].size.height)];
    [_webView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
    [_webView setDelegate:self];
    [_webView setScalesPageToFit:YES];
    [_webView loadRequest:[NSURLRequest requestWithURL:[headline link]]];
Run Code Online (Sandbox Code Playgroud)

该链接始终已为移动设备格式化.

ser*_*gio 8

我认为为UIWebView定义视口可能会有所帮助:

<meta name="viewport" content="width=device-width"/>
Run Code Online (Sandbox Code Playgroud)

这是使用设备的全宽; 如果UIWebView较小,则可以指定其宽度.

如果您需要在加载后将元标记添加到页面的HTML中,则可以使用以下代码:

- (void) webViewDidFinishLoad:(UIWebView *)webView {

  NSString* js = 
  @"var meta = document.createElement('meta'); "
   "meta.setAttribute( 'name', 'viewport' ); "
   "meta.setAttribute( 'content', 'width = device-width' ); "
   "document.getElementsByTagName('head')[0].appendChild(meta)";

  [webView stringByEvaluatingJavaScriptFromString: js];        
}
Run Code Online (Sandbox Code Playgroud)

另请检查此SO线程以获取相同的其他技术.

  • 底层解决方案允许您执行相同操作,以防您无法控制HTML源(服务器或您加载的文件)并需要"即时"更改它,即在webView加载后. (2认同)