千家信息网

iOS中如何使用WKWebView仿微信加载进度条

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,这篇文章主要介绍了iOS中如何使用WKWebView仿微信加载进度条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下WKWe
千家信息网最后更新 2024年12月12日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仿微信加载进度条"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

进度 篇文章 属性 监听 页面 仓库 代码 价值 兴趣 内容 同时 方法 时候 是在 更多 朋友 知识 类型 编带 行业 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 海量数据库解决方案pdf 中科云计算机软件开发培训班 表导入数据库有空值怎么处理 2020武汉找软件开发好难 我的世界服务器管理员守则 淮南工程管理软件开发费用 易语言如何读取数据库第二条记录 选中数据库语句 企业网络安全配置服务 做移动开发可以转软件开发吗 盘州市能源局数据库采购 腾讯在哪些国家有服务器 网络技术创新应用案例 广东戴尔服务器服务热线 db2数据库事件查询 2019网络安全最新解读 五一节网络安全执法检查 数据库创建表默认是非空么 服务器开机一会自动注销 网络安全大赛 致辞 网络安全法第六十三条解释 克亚尔国际足球数据库 东莞市宏途网络技术有限公司 郑州拓联升网络技术 三调市级数据库汇总实施方案 潜江软件开发企业 广电网络技术维护专业考试 盘州市能源局数据库采购 宁波直播小程序软件开发 服务器系统自动备份硬盘
0