这是一个从 https://github.com/samvermette/SVProgressHUD 略微修改的开源项目,它允许您在每次创建一个新的 Progress HUD 实例,并将其作为控制器视图的子视图,而不是为所有控制器共享视图。
这避免了以下问题:当有请求正在进行时,推送另一个控制器,该控制器也需要 HUD,开始请求,然后第一个控制器隐藏了 HUD 因为它的请求已完成,而第二个控制器即使其请求仍在进行中,也丢失了 HUD。
+ (JSProgressHUD *)progressViewInView:(UIView *)view;
- (void)show;
- (void)showWithStatus:(NSString*)status;
- (void)showWithStatus:(NSString*)status maskType:(JSProgressHUDMaskType)maskType;
- (void)showWithMaskType:(JSProgressHUDMaskType)maskType;
- (void)showSuccessWithStatus:(NSString *)string;
- (void)setStatus:(NSString *)string; // change the HUD loading status while it's showing
- (void)dismiss; // simply dismiss the HUD with a fade+scale out animation
- (void)dismissWithSuccess:(NSString *)successString; // also displays the success icon image
- (void)dismissWithSuccess:(NSString *)successString afterDelay:(NSTimeInterval)seconds;
- (void)dismissWithError:(NSString *)errorString; // also displays the error icon image
- (void)dismissWithError:(NSString *)errorString afterDelay:(NSTimeInterval)seconds;
您可以通过使用 @maskType@ 属性选择性地禁用用户交互并变暗背景 UI。
enum {
JSProgressHUDMaskTypeNone = 1, // allow user interactions, don't dim background UI (default)
JSProgressHUDMaskTypeClear, // disable user interactions, don't dim background UI
JSProgressHUDMaskTypeBlack, // disable user interactions, dim background UI with 50% translucent black
JSProgressHUDMaskTypeGradient // disable user interactions, dim background UI with translucent radial gradient (a-la-alertView)
};