MBProgressHUD和SVProgressHUD各自的缺点及解决方案

简介: MBProgressHUD和SVProgressHUD各自的缺点及解决方案

MBProgressHUD和SVProgressHUD各自都有缺点:

当A页面进入B页面,B页面查询数据时,报错需要弹出toast弹窗,并退出B页面到A页面。一般toast弹窗是现实在keywindow上的,但是kewindow是B页面,而由于自动返回A页面,B页面销毁了,就看不到这个toast弹窗了。使用MBProgressHUD时就会遇到该问题。有的app为了解决这个问题人为延迟推出B页面,这样降低用户的体验流畅度,不完美。另一种采用SVProgressHUD来实现,它是异步时弹窗,显示调用弹窗和实际显示弹窗有一个时间差,正好在B页面调用弹窗,在回到A页面时,弹窗出来,所以能显示出来。我们遇到过一个问题,一个请求后台在十几毫秒内返回,蒙层弹窗还没有出来请求回来了,并且取消弹窗,实际上SVProgressHUD还没有出来,导致后面没有取消处理了,一直在哪里转圈了。

最佳解决方案是创建一个优先级高于当前级别的window显示蒙层和动画。

当然若搞不定最佳的window解决方案,只能规避两者的缺点两个库都是使用当弹toast弹窗时用MBProgressHUD,当弹模态弹窗时用MBProgressHUD。当然的window解决方案也有它的不完美,就是弹出widndow弹窗时,键盘若在显示时可能消失,widndow弹窗消失时,键盘恢复原来位置。如:在输入手机号达到11位,会自动去后台查询该手机号是否存在,当然在查询期间要弹窗widndow透明蒙层,防止在查询手机号时用户修改了手机号,导致数据不一致,并且是程序自动触发,查询成功后页面会出现变化,当然存在手机号出错,用户修改手机号的场景,所以光标还要在手机号输入框,并且激活键盘状态。这时第一就会出现查询期间键盘消失,查询结束键盘恢复的问题。当发送一个请求回来立即发送另一个请求,并且这两个请求都弹出了蒙层,会出现页面闪烁的问题。所以没有绝对的完美,要以满足用户的功能为主,小细节也可以接受。并且MBProgressHUD(实时)和SVProgressHUD(延时)都是加在keywindow上的,无法系统的控制tabbar按钮切换。总之,window解决方案虽然存在影响键盘的小问题,也不失为更完美的解决方案。

目录
相关文章
|
iOS开发
Flutter与iOS原生通信方式
Flutter与iOS原生通信方式
672 2
SwiftUI—使用section将列表分为几个组
SwiftUI—使用section将列表分为几个组
984 0
SwiftUI—使用section将列表分为几个组
|
程序员 UED iOS开发
SVProgressHUD和MBProgressHUD的优缺点与SVProgressHUD震动实现
SVProgressHUD和MBProgressHUD的优缺点与SVProgressHUD震动实现
611 0
|
11月前
|
JSON 数据处理 Swift
Swift 中的网络编程,主要介绍了 URLSession 和 Alamofire 两大框架的特点、用法及实际应用
本文深入探讨了 Swift 中的网络编程,主要介绍了 URLSession 和 Alamofire 两大框架的特点、用法及实际应用。URLSession 由苹果提供,支持底层网络控制;Alamofire 则是在 URLSession 基础上增加了更简洁的接口和功能扩展。文章通过具体案例对比了两者的使用方法,帮助开发者根据需求选择合适的网络编程工具。
230 3
|
缓存 小程序 数据库
小程序页面之间(传值)传递数据的方法
小程序页面之间(传值)传递数据的方法
422 63
|
机器学习/深度学习 计算机视觉 UED
前向传播
【9月更文挑战第15天】
274 4
|
iOS开发
Xcode9之后打开Object Library组件库
Xcode9之后打开Object Library组件库
361 1
SVProgressHUD弹出框总是显示在屏幕左上角问题
SVProgressHUD弹出框总是显示在屏幕左上角问题
206 0
|
开发工具 iOS开发
阿里云本机一键登录集成
阿里云本机一键登录集成
536 0
|
弹性计算 大数据 应用服务中间件
阿里云2核2G服务器多少钱?2024年阿里云2核2G云服务器价格61元
阿里云2核2G服务器价格多少呢?这可能是很多用户关心的问题。现在阿里云2核2G3M轻量应用服务器新用户购买一年优惠价仅需61元!
193 1