温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

iOS中怎么利用WKWebView实现微信加载进度条

发布时间:2021-06-16 14:22:31 来源:亿速云 阅读:360 作者:Leah 栏目:移动开发

今天就跟大家聊聊有关iOS中怎么利用WKWebView实现微信加载进度条,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

为页面添加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<NSKeyValueChangeKey,id> *)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实现微信加载进度条有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI