1
superleexpert 2016-01-14 18:39:31 +08:00
web 端的图片设置成异步占位加载, app 端调用 JS:document.body.scrollHeight;获取高度。
如追求体验的话,可以把 JS 、 CSS 等 web 样式模板全部预先保存到本地,请求时只去拿 html string ,然后套模板加载,比如 某某新闻 App 。 |
2
banxi1988 2016-01-14 20:04:15 +08:00
我有两种方法你试试
1) 一种是 通过 JS 在 window.onLoad 方法之后,计算高度.这个计算高度则需要.计算最高的高度. 参考 :<http://stackoverflow.com/questions/1145850/how-to-get-height-of-entire-document-with-javascript> 2) 另一种是 通过 KVO 监听 webview.scrollView.contentSize 这样也是可行的. |
3
Panway 2016-01-14 20:18:35 +08:00 via Android
别用 js 计算了,也别用 sizeThatFits ,这个才是最精确最简单的
- (void)webViewDidFinishLoad:(UIWebView *)aWebView { aWebView.scrollView.scrollEnabled = NO; CGRect frame = aWebView.frame; frame.size.width = 200; frame.size.height = 1; aWebView.frame = frame; frame.size.height = aWebView.scrollView.contentSize.height; aWebView.frame = frame; } 来自 http://stackoverflow.com/a/13096183 |
4
MajestySolor 2016-01-14 20:34:58 +08:00
3 楼这个写法帅呆了
|
5
sablib 2016-01-14 21:00:27 +08:00
对啊,就像3楼一样。
webview 它也是一个 scroll view ,直接取 contentSize 吧。 |
6
kenshinhu OP |
7
muzuiget 2016-01-14 21:30:45 +08:00
图片高度未知的话,没办法的吧,加载的时候肯定不停撑长网页高度。要不就用 css 给每张图片预定义好高度,这样 domready 是网页高度就固定了。
|
8
muzuiget 2016-01-14 21:32:21 +08:00
想了下不对, domready 时 css 也可能未必完全解析完,延迟一点在取也就差不多。
|