簡介
SVProgressHUD
是簡單易用的顯示器,用於指示一個持續進行的任務的進度.
- 項目主頁: SVProgressHUD
- 最新示例: 點擊下載
快速入門
安裝
通過Cocoapods
pod 'SVProgressHUD'
手動安裝
- 拖拽
SVProgressHUD/SVProgressHUD
文件 到你的項目. - 注意把
SVProgressHUD.bundle
添加進Targets->Build Phases->Copy Bundle Resources
. - 添加 QuartzCore framework 到你的項目.
使用
(參見Xcode項目文檔 /Demo
)
SVProgressHUD
作為一個單例(也就是說,它並不需要創建和實例化,你直接調用, 如[SVProgressHUD method]
).
使用 SVProgressHUD
是非常明智的!常用場景:下拉刷新,無限滾動,發送消息
使用 SVProgressHUD
在您的應用程序通常看起來簡單:
[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