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

时间:2012-07-06 18:00:59

标签: objective-c ios ipad uiwebview scaling

有没有办法在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]]];

此链接始终已针对移动设备进行格式化。

1 个答案:

答案 0 :(得分:8)

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

<meta name="viewport" content="width=device-width"/>

这是使用设备的全宽;如果你的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];        
}

同时检查this S.O. thread以获取相同的其他技术。