谈到缓冲圈,我们平时都会使用到MBProgressHUD框架,MBProgressHUD有多种样式,但是如果有其他样式或者需求时就只能自定义缓冲圈咯。

如图样式,则通过自定义缓冲圈得到:

hud


参考demo

GHCustomHUD :https://github.com/sally1021/GHCustomHUD,参照MBProgressHUD的思路写的自定义缓冲圈,接下来结合demo做解析。


原理=自定义view+动画

 

1、给缓冲view添加旋转动画,并无限循环

 

 

2、CFTimeInterval实现的动画暂停、动画继续

 

 


显示/隐藏在view中

 

1、将缓冲view初始化并添加到指定view中

 

注:传入的view可以是,常用的UIViewController的view,即self.view;即亦可以是,UIWindow ,即 self.view.window;以及UINavigationController 的 view ,即 self.navigationController.view。或者其他特定的view。

self.view.window和 self.navigationController.view时,缓冲圈hud被添加在UIWindow或者UINavigationController上,所以导航栏上的按钮均不可点击。而使用self.view时,因为添加在UIViewController上,所以导航栏上的按钮是可以点击的

 

2、获取指定的view中的所有缓冲圈

 

 

3、隐藏缓冲圈,两种方式:隐藏指定的缓冲圈对象;隐藏指定view中的所有缓冲圈

 

 


显示/隐藏在ViewController中

 

特定时候,缓冲圈要显示在某view中,而这个view很难获取,或者根本获取不到这个view对象,则可以直接让其显示在最顶层的ViewController中

 

1、获取当前处于顶层的viewController

 

 

2、创建缓冲圈在当前顶层的vc中,即获取当前顶层vc的view,在该view中创建缓冲圈

 

 

3、隐藏当前顶层的vc中的所有缓冲圈,即获取当前顶层vc的view,隐藏该view中所有缓冲圈

 

 

 

 

分类: iOS开发

发表评论

电子邮件地址不会被公开。 必填项已用*标注