[TOC]
简介
SVProgressHUB是iOS上的的一款loading轻量级美观的加载框。
首先来看下结构目录
SVIndefiniteAnimatedView 是无限旋转的菊花视图
SVProgressAnimatedView 是进度条视图
SVRadialGradientLayer 是渐变模式下渐变的背景Layer
使用
显示
SVProgressHUD提供了显示加载图便利方法,而且几乎全是类方法,在开发中能方便的使用。如
showWithStatus 显示加载,并显示文本
showProgress 显示加载,并展示当前进度条
showInfoWithStatus 显示使用Info状态的图片的加载框来替代菊花或者进度条
showSuccessWithStatus 显示success状态的图片(一个勾)的加载框来替代菊花或者进度条
showErrorWithStatus 显示error状态的图片(一个x)的加载框来替代菊花或者进度条
除此之外你也可以设置自己的图片,使用+ (void)showImage:(UIImage*)image status:(NSString*)status;
消失
SVProgressHUD提供了几种方式来显示一个Loding框
dismiss 直接关闭一个加载Hub
dismissWithDelay 延迟关闭一个Hub
dismissWithCompletion 关闭Hub带一个完成的Block
dismissWithDelay:completion 延迟关闭Hub并带一个完成的Block
可以看出SVProgressHUD提供了简单明了的API,使用便利的类方法让我们快速在代码中使用
深入源码
显示过程
SVProgressHUD 比较简单易懂
在众多的类方法下面,也实现相应的实例方法
//简单版本
- (void)setStatus:(NSString*)status;
- (void)setFadeOutTimer:(NSTimer*)timer;
- (void)registerNotifications;
- (NSDictionary*)notificationUserInfo;
- (void)positionHUD:(NSNotification*)notification;
- (void)moveToPoint:(CGPoint)newCenter rotateAngle:(CGFloat)angle;
- (void)overlayViewDidReceiveTouchEvent:(id)sender forEvent:(UIEvent*)event;
- (void)showProgress:(float)progress status:(NSString*)status;
- (void)showImage:(UIImage*)image status:(NSString*)status duration:(NSTimeInterval)duration;
- (void)showStatus:(NSString*)status;
- (void)dismiss;
- (void)dismissWithDelay:(NSTimeInterval)delay completion:(SVProgressHUDDismissCompletion)completion;