在不修改UIWebView框架的情况下调整webView中的内容框架大小?

时间:2013-06-18 11:55:38

标签: iphone ios uiwebview

如何修改UIWebView中的内容框架(例如文字)?

请查看下面的图片,说明我的要求。

Attached image

在上图中,黄色边框为UIWebView框,红色为内容(HTML text in webView)。黑线(黄色框附近)为scroll bar应该来。所以我需要的是,只减少UIWebView的内容宽度而不更改webView's框架并将scroll bar设置在webView的右边缘。

有可能实现吗?

请分享您的想法。

谢谢。

2 个答案:

答案 0 :(得分:1)

[webView setOpaque:NO];
[webView setBackgroundColor:[UIColor redColor]];
NSString *htmlString = @"<html>\
                        <body>\
                        <div style='width:33%; color:white; background-color:black; margin:0px auto; text-align:center;'>Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</div>\
                        </body>\
                        </html>\
";

[webView loadHTMLString:htmlString baseURL:nil];
  1. 黑色视图 contentView 或任何 div
  2. 红色视图是您的webView
  3. margin:0px auto;属性使 div 居中。
  4. 您可以根据自己更改 contentView 的宽度。请参阅 div 标记中的width:33%
  5. 结果是: -

    enter image description here

答案 1 :(得分:0)

从iOS 5开始,UIScrollView属性可用于UIWebView。您可以通过在委托中实现webViewDidFinishLoad:消息来使用它来调整视图大小,如下所示:

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    CGRect newBounds = webView.bounds;
    newBounds.size.height = webView.scrollView.contentSize.height;
    webView.bounds = newBounds;
}

或者

[self.webView stringByEvaluatingJavaScriptFromString:
     [NSString stringWithFormat:
     @"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ",
      (int)self.webView.frame.size.width]];