iOS---UIWebView加载Html,根据html中的内容来动态设置UIWebView的高度

一:第一种方法直接加载

1. 初始话一个UIWebView:
self.webView = [[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 0)] autorelease];
(这里需要注意的一点是,frame的高度一定要设置为0,方便后面动态设置高度);
2. 设置UIWebView的delegate:

self.webView=self(这个就不多说了)

3. 实现UIWebView 的代理方法webViewDidFinishLoad:
- (void)webViewDidFinishLoad:(UIWebView *)webView{
    CGRect rect=  webView.frame;
    rect.size.height=webView.scrollView.contentSize.height;(此方法是将webView.scrollView的contentSize的高度赋给webView的高度,所以之前在初始化webView的时候将webView的默认高度设置为0意义就在于此,这样contentSize.height就是内容的高度了)
    NSLog(@"-----%f",webView.scrollView.contentSize.height);
    webView.frame=rect;
 }
3. 缺点

里面的图片不会自适应

二:第二种方法:转义之后加载,图片能自适应屏幕

NSInteger width = self.webView.frame.size.width * 0.95;
方法一 : 
NSString *string = [NSString stringWithFormat:@"<head><style>img{max-width:%ldpx !important;}ul {margin:0; padding:0; text-align:left;}</style><head>", (long)width];
方法二 :
NSString *string = [NSString stringWithFormat:@"<head><style>body, div, span, a, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, p, th, td, pre, form, fieldset, legend, input, button, textarea, select {margin:0;padding:5;}img{max-width:%ldpx !important;}li {list-style:none;}</style><head>", (long)width];
NSString *newHtml = [self HTML:model.body];
NSString *str = [NSString stringWithFormat:@"%@%@", string, newHtml];
[self.webView loadHTMLString:str baseURL:nil];
注 : li {list-style:none;} //去掉li的小黑点
        img{max-width:%ldpx !important;} // 图片宽度自定义
        ul {margin:0; padding:0; text-align:left;} // 左对齐
       select {margin:0;padding:5;}//文字距离边缘的数
#pragma mark -- 转义html中的标签
- (NSString *)HTML:(NSString *)html{
    NSScanner *theScaner = [NSScanner scannerWithString:html];
    NSDictionary *dict = @{@"&":@"&", @"<":@"<", @">":@">", @" ":@"", @""":@"\"", @"width":@"wid"};
    while ([theScaner isAtEnd] == NO) {
        for (int i = 0; i <[dict allKeys].count; i ++) {
            [theScaner scanUpToString:[dict allKeys][i] intoString:NULL];
            html = [html stringByReplacingOccurrencesOfString:[dict allKeys][i] withString:[dict allValues][i]];
        }
    }
    return html;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • IOS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、...
    学无止境666阅读 45,914评论 5 53
  • OS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、速...
    知之未道阅读 1,670评论 0 4
  • http://www.cnblogs.com/mddblog/p/5281748.html 一、整体介绍 UIWe...
    F麦子阅读 1,266评论 0 2
  • 从此山水不相逢, 不问旧人长与短。
    咫尺天涯意相逢阅读 126评论 0 0
  • 蜀色 ——献给我蜀地的姑娘 不像南蛮人饮的烈酒 一颦一笑间满是 满是峨眉山色的娟秀 不像都江堰口的急骤 ...
    顾缘君_Z阅读 487评论 0 0