iOS中如何使用WKWebView仿微信加载进度条-创新互联

这篇文章主要介绍了iOS中如何使用WKWebView仿微信加载进度条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

站在用户的角度思考问题,与客户深入沟通,找到尼勒克网站设计与尼勒克网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟空间、企业邮箱。业务覆盖尼勒克地区。

具体内容如下

WKWebView添加了estimatedProgress属性(double类型),我们可以利用该属性来设置UIProgressView

github代码仓库上存放的Demo

为页面添加UIProgressView属性

@property (nonatomic, strong) WKWebView *mywebView;@property (nonatomic, strong) UIProgressView *progressView;//设置加载进度条

懒加载UIProgressView

-(UIProgressView *)progressView{ if (!_progressView) {  _progressView     = [[UIProgressView alloc]           initWithProgressViewStyle:UIProgressViewStyleDefault];  _progressView.frame    = CGRectMake(0, 64, screen_width, 5);  [_progressView setTrackTintColor:[UIColor colorWithRed:240.0/255               green:240.0/255               blue:240.0/255               alpha:1.0]];  _progressView.progressTintColor = [UIColor greenColor]; } return _progressView;}

在初始化WKWebView时(我是在懒加载时) kvo 添加监控

[_mywebView addObserver:self      forKeyPath:NSStringFromSelector(@selector(estimatedProgress))      options:0      context:nil];

页面开始加载时,隐藏进度条

//开始加载-(void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{ //开始加载的时候,让进度条显示 self.progressView.hidden = NO;}

kvo 监听进度

//kvo 监听进度-(void)observeValueForKeyPath:(NSString *)keyPath      ofObject:(id)object      change:(NSDictionary *)change      context:(void *)context{ if ([keyPath isEqualToString:NSStringFromSelector(@selector(estimatedProgress))]  && object == self.mywebView) {  [self.progressView setAlpha:1.0f];  BOOL animated = self.mywebView.estimatedProgress > self.progressView.progress;  [self.progressView setProgress:self.mywebView.estimatedProgress        animated:animated];  if (self.mywebView.estimatedProgress >= 1.0f) {   [UIView animateWithDuration:0.3f         delay:0.3f        options:UIViewAnimationOptionCurveEaseOut        animations:^{         [self.progressView setAlpha:0.0f];        }        completion:^(BOOL finished) {         [self.progressView setProgress:0.0f animated:NO];        }];  } }else{  [super observeValueForKeyPath:keyPath        ofObject:object        change:change        context:context]; }}

在dealloc方法里移除监听

-(void)dealloc{ [self.mywebView removeObserver:self      forKeyPath:NSStringFromSelector(@selector(estimatedProgress))];}

感谢你能够认真阅读完这篇文章,希望小编分享的“iOS中如何使用WKWebView仿微信加载进度条”这篇文章对大家有帮助,同时也希望大家多多支持创新互联网站建设公司,,关注创新互联行业资讯频道,更多相关知识等着你来学习!


分享文章:iOS中如何使用WKWebView仿微信加载进度条-创新互联
当前地址:http://myzitong.com/article/ggjsp.html