遇到一个需求:
1、cell中嵌套一个webview 。webview加载网页数据;
遇到的问题:
1、无法得到cell的高度
前言:网上搜索了很多解决方案,基本上都是在cell中读取网络数据之后通过通知或者块传值改变改变模型高度,或者直接改变cell的高度,然后进行刷新,理论上是可行的,但是通过通知或者块传值遇到一个问题:传值回来之后,tableview每次都进行刷新了,这样滚动非常的卡,不流畅
解决方案:
1、由于需求中网络数据并不是很大,所以直接在模型中通过webview请求数据获取高度,然后直接赋值给cell;
//获取webview的高度
sizeHeight = [[_webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue];
2、为了让cell避免重复从网络加载数据获取高度,可以使用懒加载方式获取高度;
总结:
在模型中获取数据之后,cell中又重新获取了一次网络数据,这样会造成两次读取网络数据,造成流量的浪费,所以,如有需要,请按需求取舍;
网友评论