tableView 头部webView 高度获取

项目中需要场景:头部后端返回h5语句,下面各种cell;
解决方案:头部使用webView,但高度是跟随h5语句实时改变。
首先遵循webView的代理:
在webViewDidFinishLoad方法里面实现:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    CGSize size = [webView sizeThatFits:CGSizeZero];
    webView.frame = CGRectMake(0, 0, size.width, size.height);
    self.headView.frame = CGRectMake(0, 0, SCREEN_WIDTH, size.height);
    self.table.tableHeaderView = self.headView;
}

但如果是一个链接的话,有大量图片情况下,就需要给webView的contentSize加监听实现了,因为加载完webView,但图片并不一定加载出来,:

       [_scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {

    if ([keyPath isEqualToString:@"contentSize"]) {
        CGSize size = [webView sizeThatFits:CGSizeZero];
    webView.frame = CGRectMake(0, 0, size.width, size.height);
    self.headView.frame = CGRectMake(0, 0, SCREEN_WIDTH, size.height);
    self.table.tableHeaderView = self.headView;
    }


}

记得dealloc里面移除监听。到此就结束了。至少是实现了我项目的需求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值