博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 处理HTML字符串,UIScrollView嵌套webView 获取webVeiw页面高度
阅读量:5930 次
发布时间:2019-06-19

本文共 2109 字,大约阅读时间需要 7 分钟。

最近做新闻详情页,后台返回的是HTML字符串,这里记录一下,顺便说一下UIScrollView嵌套webView 获取webVeiw页面高度,我的解决方案

直接上代码//后台返回的HTML字符串NSString *replaceStr = self.model.content; //去除字符串中的换行符和制表符(可有可无,看需求)replaceStr = [replaceStr stringByReplacingOccurrencesOfString:@"\n" withString:@""];replaceStr = [replaceStr stringByReplacingOccurrencesOfString:@"\r" withString:@""]; //拼接字符串,改变图片和文字的大小(使图片和文字实现自适应大小) NSString *htmlStr = [NSString stringWithFormat:@"%@",replaceStr];//调用webView的方法因为是UIScrollView嵌套webView,所以初始化webView的时候给一个高度就可以了,后面的代码会动态的获取webView的高度[webView   loadHTMLString:htmlStr baseURL:nil];//添加webView到UIScrollView上[self.mainView addSubview:webView];现在的话,图文加载基本没有问题了,下面来处理高度的问题//KVO      [self.webView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];#pragma  make -- Kvo- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{        if ([keyPath isEqualToString:@"contentSize"]) {                //获取webview的内容高度                self.webViewHeight = [[self.contentLabel stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];                //通过webview的contentSize获取内容高度                //        self.webViewHeight = [self.showWebView.scrollView contentSize].height;                CGRect newFrame = self.contentLabel.frame;                newFrame.size.height= self.webViewHeight;                NSLog(@"-document.body.scrollHeight-----%f",self.webViewHeight);                NSLog(@"-contentSize-----%f",self.webViewHeight);        //在这里重新计算webView的frame        self.webView.frame = CGRectMake(self.timeLabel.frame.origin.x, self.timeLabel.frame.origin.y + self.timeLabel.frame.size.height, self.titleLabel.frame.size.width, self.webViewHeight);//在这里重新计算ScrollView的contentSize        self.mainView.contentSize = CGSizeMake(kWidth, self.titleLabel.frame.size.height + 35 + self.webViewHeight);    }}-(void)dealloc{    //移除监听者    [self.contentLabel.scrollView removeObserver:self forKeyPath:@"contentSize" context:nil];    }复制代码

转载于:https://juejin.im/post/5a311bbdf265da4304069e21

你可能感兴趣的文章
Vmware Workstation _linux yum 仓库搭建
查看>>
Hibernate的二级缓存
查看>>
js面向对象之属性
查看>>
创建日历和日期列表
查看>>
效率由心生,快速提高工作效率秘诀
查看>>
python 第六天
查看>>
MySQL数据类型--与MySQL零距离接触2-12主键约束
查看>>
数据库
查看>>
软件测试2019:第八次作业
查看>>
PHP导出MySQL数据到Excel
查看>>
转sql2005 远程连接问题解决方法
查看>>
Qt的widget与Button添加图片
查看>>
C# 图像处理:Bitmap 与 Image 之间的转换
查看>>
VC++ GDI 总结 一一 CBitmap类
查看>>
TCP/IP之DNS域名解析系统
查看>>
如何限制青少年无节制的玩电脑--使用智能卡登录系统
查看>>
mysql修改用户密码
查看>>
Vue
查看>>
扩大ImageButton响应点击区域的方法
查看>>
类加载过程
查看>>