SVProgressHUD--比MBProgressHUD更好用的 iOS進度提示組件

簡介

SVProgressHUD

SVProgressHUD是簡單易用的顯示器,用於指示一個持續進行的任務的進度.ios

快速入門

安裝

經過Cocoapods

pod 'SVProgressHUD'

手動安裝

  • 拖拽 SVProgressHUD/SVProgressHUD 文件 到你的項目.objective-c

  • 注意把 SVProgressHUD.bundle 添加進 Targets->Build Phases->Copy Bundle Resources.ruby

  • 添加 QuartzCore framework 到你的項目.app

使用

(參見Xcode項目文檔 /Demo)ssh

SVProgressHUD 做爲一個單例(也就是說,它並不須要建立和實例化,你直接調用, 如[SVProgressHUD method]).async

使用 SVProgressHUD是很是明智的!經常使用場景:下拉刷新,無限滾動,發送消息ide

使用 SVProgressHUD在您的應用程序一般看起來簡單:ui

[SVProgressHUD show];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // time-consuming task
    dispatch_async(dispatch_get_main_queue(), ^{
        [SVProgressHUD dismiss];
    });
});

顯示 HUD

您能夠使用下面的方法中的任意一個來顯示HUD,以及指示任務的狀態:

+ (void)show;
+ (void)showWithStatus:(NSString*)string;

若是您想在HUD指示任務的進度,請使用下列操做之一:

+ (void)showProgress:(CGFloat)progress;
+ (void)showProgress:(CGFloat)progress status:(NSString*)status;

隱藏 HUD

HUD能夠用如下方法隱藏:

+ (void)dismiss;
+ (void)dismissWithDelay:(NSTimeInterval)delay;

若是你想顯示多個HUD ,能夠使用使用一下方法:

+ (void)popActivity;

該HUD將自動消失, popActivity將與顯示的次數匹配。

顯示一個提示消息

也能夠用於顯示一個提示信息。所述顯示時間取決於給定的字符串的長度( 0.5至5秒)。

+ (void)showInfoWithStatus:(NSString *)string;
+ (void)showSuccessWithStatus:(NSString*)string;
+ (void)showErrorWithStatus:(NSString *)string;
+ (void)showImage:(UIImage*)image status:(NSString*)string;

自定義

SVProgressHUD 可經過下列方法進行個性化定製:

+ (void)setDefaultStyle:(SVProgressHUDStyle)style;                  // 默認是SVProgressHUDStyleLight
+ (void)setDefaultMaskType:(SVProgressHUDMaskType)maskType;         // 默認是SVProgressHUDMaskTypeNone
+ (void)setDefaultAnimationType:(SVProgressHUDAnimationType)type;   // 默認是 SVProgressHUDAnimationTypeFlat
+ (void)setRingThickness:(CGFloat)width;                            // 默認是 2 pt
+ (void)setCornerRadius:(CGFloat)cornerRadius;                      // 默認是 14 pt
+ (void)setFont:(UIFont*)font;                                      // 默認是 [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline]
+ (void)setForegroundColor:(UIColor*)color;                         // 默認是 [UIColor blackColor], 僅對 SVProgressHUDStyleCustom 有效
+ (void)setBackgroundColor:(UIColor*)color;                         // 默認是 [UIColor whiteColor], 僅對 SVProgressHUDStyleCustom 有效
+ (void)setInfoImage:(UIImage*)image;                               //默認是bundle文件夾中的提示圖片.
+ (void)setSuccessImage:(UIImage*)image;                            // 默認是bundle文件夾中的成功圖片.
+ (void)setErrorImage:(UIImage*)image;                              // 默認是bundle文件夾中的錯誤圖片.
+ (void)setViewForExtension:(UIView*)view;                          // 默認是nil,僅當設置了 #define SV_APP_EXTENSIONS 時有效.

通知

SVProgressHUD經過 NSNotificationCenter 註冊4份通知,以響應正在顯示/消失:

  • SVProgressHUDWillAppearNotification 提示框即將出現

  • SVProgressHUDDidAppearNotification 提示框已經出現

  • SVProgressHUDWillDisappearNotification 提示框即將消失

  • SVProgressHUDDidDisappearNotification 提示框已經消失

每一個通知傳遞一個 userInfo字典,字典中包含HUD的狀態字符串(若是有的話) ,可經過 SVProgressHUDStatusUserInfoKey做爲鍵來獲取。

SVProgressHUD還發送通知:
SVProgressHUDDidReceiveTouchEventNotification當用戶觸摸總體屏幕上 和
' SVProgressHUDDidTouchDownInsideNotification當用戶直接在HUD接觸。這兩個通知沒有 userInfo參數,但包含了有關的觸摸的UIEvent` 參數.

App 擴展(App Extension)

當在應用程序中使用SVProgressHUD時, 要定義常量 #define SV_APP_EXTENSIONS避免使用不可用的API。而後從你的擴展視圖控制器中經過self.view 調用 setViewForExtension: 便可。
注意: 此處指的是"App Extension",不是類目."File->New->Target...-> iOS -> App Extension->Photo Editing Extension". 若是未用到,可忽略. 更多細節參考: https://github.com/TransitApp/SVProgressHUD/issues/390

相關文章
相關標籤/搜索