iOS UIWebView 获取内容实际高度,关闭滚动效果

这几天改需求,要求将 UIWebView 嵌套在 UIScrollView 里,由 UISCrollView 控制滚动,需要使 UIWebView 的高度同内容高度一致,网上搜索的到代码:

CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];

这段代码是没有效果的,body 获取到的 offsetHeight,为显示区域的高度,因此修改如下:

首先遵守协议并设置代理:

self.myWebView.delegate = self;

self.headerView.frame = CGRectMake(0, 0, 375, 150);

self.myScrollView.frame = CGRectMake(0, 0, 375, 667);

在代理方法 - (void)webViewDidFinishLoad:(UIWebView *)webView 中获取高度:

CGFloat height = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];

改变 webView 的高度

self.myWebView.frame = CGRectMake(0, 150, 375, height);

关闭 webView 的滚动

UIScrollView *tempView = (UIScrollView *)[self.myWebView.subviews objectAtIndex:0];

tempView.scrollEnabled = NO;

改变 ScorllView 的高度

self.myScrollView.contentSize = CGSizeMake(375, height + self.headerView.frame.size.height);

搞定.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • IOS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、...
    学无止境666阅读 45,914评论 5 53
  • 如今,移动APP与网页交互的关系越来越密切,所以,在APP开发的过程中,会经常使用到UIWebView.在我自己之...
    KKWong阅读 10,763评论 8 10
  • OS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、速...
    知之未道阅读 1,670评论 0 4
  • 原文 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新。 1.UITableView的Group...
    无沣阅读 794评论 0 2
  • 1.NSTimer //暂停if ([timer isValid]) {[timer setFireDate:[N...
    俊月阅读 1,375评论 0 0