提供了四种类型的展现:ios
最后旋转的菊花,提供了一个view的扩展,将UIActivityIndicatorView
小菊花显示在调用者中间位置。git
DDProgressHUD.h
头文件便可使用工程如今下来能够看到是一个demo,点击上面的按钮就一目了然github
为了方便管理与自定义,建议仍是fork一份到本身的github网络
/// 只显示图片,一直显示直到调用dismiss方法 + (void)show; /// 显示图片和文字,一直显示直到调用dismiss方法 + (void)showWithStatus:(NSString *)status; /// 很明显,显示时间由duration决定,固然,中途也能够调用dismiss方法来取消显示 + (void)showWithStatus:(NSString *)status andDuration:(NSTimeInterval)duration;
/// 显示进度,不会自动消失,须要调用dismiss方法,progress 取值范围0~1 + (void)showProgress:(CGFloat)progress; /// 显示进度,和一段描述,不会自动消失,须要调用dismiss方法 + (void)showProgress:(CGFloat)progress withStatus:(NSString *)status;
/// 成功弹窗,只显示图片, + (void)showSuccessImage; /// 成功状态图片和info + (void)showSuccessImageWithInfo:(NSString *)info; /// 错误弹窗,只显示图片 + (void)showErrorImage; /// 错误状态图片和info + (void)showErrorImageWithInfo:(NSString *)info; /// 显示自定义图片和文字信息,视图大小会根据文字和图片的大小自动调整 + (void)showImage:(UIImage *)image andInfo:(NSString *)info; /// 显示自定义图片和文字信息时间到后自动消失,视图大小会根据文字和图片的大小自动调整 + (void)showImage:(UIImage *)image andInfo:(NSString *)info andDuration:(CGFloat)duration;
关于显示时间的问题:会根据传入的Info长短来计算一个时间,而后和最大时间、最小时间作比较,防止超过预期值,最大最小值均可以程序设置,具体参照下面关于设置的介绍。ssh
成功和失败的图片没有提供接口来替换,若是须要显示自定义的图片,上面也提供了方法。oop
固然你也将程序默认成功和失败的图片本身替换掉(在bundle中),程序会根据图片的大小来自动计算Frame,因此图片大小也不受限制,可是图片名字必须与默认的保持一致。字体
+ (void)showWithView:(UIView *)view andDuration:(NSTimeInterval)duration;
随意显示,和上面最大的不一样就是,它的frame须要使用者本身定义与计算,HUD只是提供一个蒙版,还有就是点击蒙版后的操做(隐藏,发送通知,或者什么也不作)动画
显示系统的菊花到view的中间,view的扩展方法线程
/// 将DDProgressHUD无限循环动画添加到view, @return 返回DDProgressHUD实例 - (UIActivityIndicatorView *)showActivityView; /// 将最顶层的ActivityView从父视图删除,若是添加了屡次则只会删除最顶层! @return 找到并删除成功返回YES,不然NO - (BOOL)hiddenActivityView;
设置有两种:code
DDDefaultSetup.h
头文件DDProgressHUD.h
简单看下视图和对应的名称,还有层级
也能够根据上面显示类别和view的层级关系,分为如下几种
首先默认设置,一共有4个
/// 遮罩默认不透明度 #define kMaskViewAlpha 0.6f /// 遮罩默认颜色 #define kMaskViewBackgroundColorRGB 0x999999 /// 默认展现动画时间 #define kShowAnimateDuration 0.2f /// 默认隐藏动画时间 #define kDismissAnimateDuration 0.2f
前两个好理解,后面两个是展现maskview和隐藏时的动画时间,是对alpha作的动画。
对应类方法设置为:(void)setMaskviewColor:(UIColor *)color
,颜色和透明度,一块儿设置。动画时间没有提供。
另外还有setMaskViewAutomaticHidden:
,即点击蒙版后是否自动消失视图,即调用dismiss方法。不管YES或者NO,点击后都会发送一个通知static const NSNotificationName DDMaskViewDidClicked = @"DDMaskViewDidClicked";
头文件默认设置
/// 圆角半径 #define kCornerRadius 10 #define kHudColor 0xF0F0F0 /// hud最大宽度与屏幕宽度比例 #define kMaxWidthRatioScreenWidth (2.0/3.0) /// hud最大高度与屏幕高度比例 #define kMaxHeightRatioScreenHeight (2.0/3.0) /// hud最小宽高比,避免hud显得太瘦,使用者能够经过将文本换行(\n\r)来避免太胖 #define kMinimumWidthRatioHeight 0.95 /// 图片与文字之间的间隙(竖直方向) #define kViewMargin 12 /// 与父视图间隙 #define kTopAndBottomMargin 16 /// 与父视图间隙 #define kLeftAndRightMargin 16
类方法的设置:有的没有提供(好比宽高比,好比视图间隙)
/// 设置圆角,默认为10,具体参照:DDDefaultSetup.h为准 + (void)setBackgroundViewCornerRadius:(CGFloat)radius; /// 设置背景颜色,默认为0xF0F0F0,具体参照:DDDefaultSetup.h为准 + (void)setBackgroundViewColor:(UIColor *)color; /// 设置字体,默认为偏好设置字体 + (void)setFont:(UIFont *)font;
共同的设置,即文字(lbl)字体:
类方法:setFont:
,默认设置为跟随偏好设置的小标题大小变化[UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline]
默认:
/// 最长10秒,最短3秒 #define kDDMaxImageShowDuration 10.0f #define kDDMinimumImageShowDuration 3.0f /// 每一个文字显示时间 #define kEveryWordShowDuration 0.2f
类方法:
+ (void)setMaxImageShowDuration:(CGFloat)duration; + (void)setMinimumImageShowDuration:(CGFloat)duration; /// 默认每一个文字0.2s,具体参照:DDDefaultSetup.h为准 + (void)setEveryWordShowDuration:(CGFloat)duration;
主要用于计算弹窗显示时间长短
默认:
/// 旋转一周所用的时间,控制旋转的速度 #define kOneRoundDuration 1.0f
类方法:多提供了旋转的图片设置,能够在这里设置,也能够直接将bundle里面的替换,替换后全局有效
/// 自定义旋转的图片 + (void)setLoopImage:(UIImage *)image; /// 控制旋转的速度:旋转一圈所用的时间,默认为1s,具体参照:DDDefaultSetup.h为准 + (void)setLoopOneRingDuration:(CGFloat)duration;
默认:
/// 进度圆环线半径大小 #define kRingRadius 25.0f /// 进度圆环线宽度 #define kRingLineWidth 3.0f /// 进度圆环颜色 #define kForegroundRingLineColorRGB 0x333333 #define kBackgroundRingLineColorRGB 0xE0E0E0
类方法:
/// 圆弧半径,默认为25,具体参照:DDDefaultSetup.h为准 + (void)setForegroundRingRadius:(CGFloat)radius; + (void)setBackgroundRingRadius:(CGFloat)radius; /// 圆弧线宽度,默认为3,具体参照:DDDefaultSetup.h为准 + (void)setForegroundRingLineWidth:(CGFloat)width; + (void)setBackgroundRingLineWidth:(CGFloat)width; /// 圆弧线颜色,默认为0xE0E0E0 0x333333,具体参照:DDDefaultSetup.h为准 + (void)setForegroundRingLineColor:(UIColor *)color; + (void)setBackgroundRingLineColor:(UIColor *)color;
github地址:https://github.com/mddios/DDProgressHUD ,已支持CocoaPods:pod 'MDDProgressHUD',注意前面是MDD,不是DD(被别人占用)
若是帮到了你,给颗星吧!