注册 登录
主题 : UITableView里面放WkwebView,有什么好的方法防止循环计算高度?
级别: 侠客
UID: 479552
精华: 0
发帖: 96
可可豆: 222 CB
威望: 222 点
在线时间: 537(时)
注册时间: 2015-06-08
最后登录: 2018-07-12
0 楼:  发表于: 2018-02-02 15:34    发自: Web Page
来源于 一般提问 分类

UITableView里面放WkwebView,有什么好的方法防止循环计算高度?   

一个UITableView里面的每个cell里都有WkwebView,加载的是html的数据,在计算高度的时候无论是用didFinishNavigation代理,还是用kvo监听,刷新cell时都会出现循环的情况,有大神知道防止循环计算的方法吗?
级别: 新手上路
UID: 522622
精华: 0
发帖: 22
可可豆: 35 CB
威望: 35 点
在线时间: 238(时)
注册时间: 2015-11-11
最后登录: 2018-07-12
1 楼:  发表于: 2018-04-17 10:13    发自: Web Page
回 楼主(凯文杜兰特) 的帖子
kvo监听 给默认高度 现在在找这个问题 我还没解决
级别: 新手上路
状态: 连续签到 - [3天]
UID: 613764
精华: 0
发帖: 3
可可豆: 13 CB
威望: 5 点
在线时间: 63(时)
注册时间: 2017-05-11
最后登录: 2018-06-12
2 楼:  发表于: 2018-04-17 11:34    发自: Web Page
回 1楼(FBT) 的帖子
将模型传入cell, 然后给模型里面的高度赋值, 然后在VC的cell的代理方法, 直接拿模型里面计算得出的高度进行对cell高度赋值, 应该就可以了吧?

级别: 新手上路
状态: 连续签到 - [2天]
UID: 457286
精华: 0
发帖: 33
可可豆: 81 CB
威望: 79 点
在线时间: 209(时)
注册时间: 2015-04-02
最后登录: 2018-04-18
3 楼:  发表于: 2018-04-17 14:21    发自: Web Page
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    CGRect frame = webView.frame;
    CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
    frame.size = fittingSize;
    webView.frame = frame;

    NSInteger height = [[webView stringByEvaluatingJavaScriptFromString:
    @"document.body.scrollHeight"] integerValue];

    self.scrollView.contentSize=CGSizeMake(self.view.frame.size.width, height);

    [self.scrollView addSubview:self.webView];
}
级别: 新手上路
UID: 522622
精华: 0
发帖: 22
可可豆: 35 CB
威望: 35 点
在线时间: 238(时)
注册时间: 2015-11-11
最后登录: 2018-07-12
4 楼:  发表于: 2018-04-17 15:23    发自: Web Page
回 楼主(凯文杜兰特) 的帖子
解决问题了没 解决的话可否说下如何解决的 现在我也遇到了

级别: 侠客

状态: 连续签到 - [4天]
UID: 527650
精华: 0
发帖: 145
可可豆: 226 CB
威望: 203 点
在线时间: 1010(时)
注册时间: 2015-11-30
最后登录: 2018-07-16
5 楼:  发表于: 2018-04-17 15:40    发自: Web Page
2楼正解
级别: 新手上路
UID: 594051
精华: 0
发帖: 6
可可豆: 6 CB
威望: 6 点
在线时间: 44(时)
注册时间: 2016-10-15
最后登录: 2018-07-10
6 楼:  发表于: 2018-04-17 16:02    发自: Web Page
回 楼主(凯文杜兰特) 的帖子
先给模型一个默认高度,在
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    [webView evaluateJavaScript:@"document.getElementById('mobile').value"completionHandler:^(id result,NSError *_Nullable error) {
        //获取页面高度,并重置webview的frame
        
    }];
}
再将获得的高度传回模型,刷新列表就好了
级别: 侠客
UID: 479552
精华: 0
发帖: 96
可可豆: 222 CB
威望: 222 点
在线时间: 537(时)
注册时间: 2015-06-08
最后登录: 2018-07-12
7 楼:  发表于: 2018-04-17 17:07    发自: Web Page
回 4楼(FBT) 的帖子
我也还没解决,你试一下回复里面这几个哥们的方法吧
级别: 侠客
UID: 479552
精华: 0
发帖: 96
可可豆: 222 CB
威望: 222 点
在线时间: 537(时)
注册时间: 2015-06-08
最后登录: 2018-07-12
8 楼:  发表于: 2018-04-17 17:08    发自: Web Page
回 6楼(吴少锐) 的帖子
我记得我这样写过,也是会出现循环引用的情况
级别: 侠客
UID: 479552
精华: 0
发帖: 96
可可豆: 222 CB
威望: 222 点
在线时间: 537(时)
注册时间: 2015-06-08
最后登录: 2018-07-12
9 楼:  发表于: 2018-04-17 17:09    发自: Web Page
回 2楼(BaHuiQiao) 的帖子
你的方法应该和1楼,6楼的一样,还是会出现死循环
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部