WKWebView

WKWebView加载显示问题

2016-10-27  本文已影响0人  Rayla_周周

因为项目数据要求,加载的html数据量太大,用原始的UIWebView加载,导致内存暴涨————崩溃

改用WKWebView,但是加载的时候页面的行高显示的是正确的,但是里面的数据一直显示不全;

  1》 WKWebView放置的位置,在加载cell的时候,直接放在cell的contentView

2》  设置观察者

        [self.detailWebView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];

3》在观察方法中设置为WKWebView的frame

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

CGSize websize = [[change objectForKey:@"new"] CGSizeValue];

self.detailWebView.frame = CGRectMake(0, 0, ScreenWidth, websize.height);

[self.cellHeightArr replaceObjectAtIndex:1 withObject:@(websize.height)];

NSIndexPath*index=[NSIndexPath indexPathForRow:0 inSection:self.saveCellArrM.count-1];

[self.tableView reloadRowsAtIndexPaths:@[index] withRowAnimation:UITableViewRowAnimationNone];

}

 3》 每次值改变的时候,重新设置加载cell,设置cell的高度

 4》 结论:cell的行高是页面内容的高度,可是在加载后,页面中的数据有时能显示完整,有时显示不完整


解决办法:

1》 在cell上加载一个scrollView,再将WKWebView加载到scrollView上,让后在每次加载cell的时候,设置scrollView的高度为页面的高度(最主要的就是不能将WKWebView直接放在cell上)

2》其它的设置不变

3》结论:哈哈哈,正常的加载显示。


上一篇下一篇

猜你喜欢

热点阅读