iOS开发之解决WebView自适应内容高度
来源:互联网 发布:淘宝爱奇艺会员店铺 编辑:程序博客网 时间:2024/06/04 18:19
这段时间写的项目中,有涉及到根据后端上传的表单内容,然后在移动端将内容排版重新展示的功能点,所以小小的写一下解决办法。
首先如果直接进行内容展示,或者进行sizeToFit的操作,那么可能会造成图片超过屏幕大小,字体变得很小的结果,所以这里用到了UIWebView的delegate方法和添加了html的标签语言,使用了javascript操作方法。具体可以研究代码,如下:
//web-(UIWebView *)detailWebView{ if (_detailWebView == nil) { _detailWebView = [UIWebView new]; _detailWebView.delegate = self; _detailWebView.scrollView.bounces = NO; _detailWebView.scrollView.showsHorizontalScrollIndicator = NO; _detailWebView.scrollView.scrollEnabled = NO; _detailWebView.dataDetectorTypes = UIDataDetectorTypeAll; [_detailWebView sizeToFit]; } return _detailWebView;}
NSString *htmlcontent = [NSString stringWithFormat:@"<head><style>img{max-width:%fpx !important;}</style></head><div id=\"webview_content_wrapper\">%@</div>",f_Device_w-30,detailDic[@"content"]]; [_detailWebView loadHTMLString:htmlcontent baseURL:nil];
#pragma mark ----- webView 的 delegate- (void)webViewDidFinishLoad:(UIWebView *)webView{ //获取页面高度(像素) NSString * clientheight_str = [webView stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"]; float clientheight = [clientheight_str floatValue]; //设置到WebView上 webView.frame = CGRectMake(15, _whereNewsLabel.bottom+10, f_Device_w-30, clientheight); //下面这样写就是获取到比较准确的内容高度,不需要再进行其他计算了 //获取内容实际高度(像素) NSString * height_str= [webView stringByEvaluatingJavaScriptFromString: @"document.getElementById('webview_content_wrapper').offsetHeight + parseInt(window.getComputedStyle(document.getElementsByTagName('body')[0]).getPropertyValue('margin-top')) + parseInt(window.getComputedStyle(document.getElementsByTagName('body')[0]).getPropertyValue('margin-bottom'))"]; float height = [height_str floatValue]; //再次设置WebView高度(点) webView.frame = CGRectMake(15, _whereNewsLabel.bottom+10, f_Device_w-30, height); if ([self.delegate respondsToSelector:@selector(backWebViewWithHeight:)]) { [self.delegate backWebViewWithHeight:webView.bottom+5]; }}
有写代码是我项目中使用的,没有必要用,大家可以根据自己的需要修改,必要的代码上面都有,有问题可以留言,不喜勿喷,谢谢!
阅读全文
0 0
- iOS开发之解决WebView自适应内容高度
- iOS WebView自适应内容高度
- 完美解决iOS的WebView自适应内容高度问题
- iOS的WebView自适应内容高度
- iOS的WebView自适应内容高度
- iOS的WebView自适应内容高度(真实高度)
- iOS【终极方案】精准获取webView内容高度,自适应高度
- iOS【终极方案】精准获取webView内容高度,自适应高度
- iOS【终极方案】精准获取webView内容高度,自适应高度
- iOS【终极方案】精准获取webView内容高度,自适应高度
- WebView自适应实际内容高度
- ios webview自适应实际内容高度4种方法
- 完美方案——iOS的WebView自适应内容高度
- ios webview自适应实际内容高度4种方法
- ios webview自适应实际内容高度4种方法
- 完美方案——iOS的WebView自适应内容高度
- ios webview自适应实际内容高度4种方法
- 完美方案——iOS的WebView自适应内容高度
- Nginx启动提示找不到libpcre.so.1解决方法
- 39STL之查找算法
- ItemTouchHelper源码分析(中)
- 关于wampserver里面出现错误的问题解决方法
- 生成随机数的类Random和ThreadLocalRandom
- iOS开发之解决WebView自适应内容高度
- mysql的聚集函数
- 提交文件到svn,提示"is not under version control
- 大数阶乘
- Android饼状图的绘制
- 设计模式在架构设计中的运用
- 如何用命令将本地项目上传到git
- 如何加密和混乱源代码
- C++获取windows系统时间的七种方式