14.UIWebView自适应高度
场景
最近项目中遇到Native页面内需要内嵌H5页面的需求 内嵌的H5页面用来暂时运营后台动态配置的一些运营内容 需要自适应H5内容的高度
思路
思路一: webViewDidFinishLoad
初遇这个问题时我首先想到的是在webViewDidFinishLoad
这个代理方法中通过获取webView
的ScrollView
的大小去改变内嵌部分的高度
- (void)webViewDidFinishLoad:(UIWebView *)webView {
//TODO: 获取高度并改变容器大小
}
但是 这个方法执行的时候页面可能还没有完全展示出来,web页面渲染是需要时间的 所以 在webViewDidFinishLoad
中去获取到的高度并不准确
思路二: KVO
对! 监听webView
的scrollView
的contentSize的变化
添加监听
[self.hybridWebView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];
触发
#pragma mark - KVO
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
if ([keyPath isEqualToString:@"contentSize"]) {
//TODO: 获取高度并改变容器大小
}
}
Last updated
Was this helpful?