一、簡介 DMProgressHUD是一款用於顯示非同步操作任務進度狀態的視圖工具。 該工具包含了目前較為主流的載入狀態視圖類型,後續會根據具體情況或需求進行迭代。 DMProgressHUD從設計層次的角度來看,其包含了5種展示模式: 二、導入(Platform : ios >= 8.0) 方案1: ...
一、簡介
DMProgressHUD是一款用於顯示非同步操作任務進度狀態的視圖工具。 該工具包含了目前較為主流的載入狀態視圖類型,後續會根據具體情況或需求進行迭代。 DMProgressHUD從設計層次的角度來看,其包含了5種展示模式:
- Loading(載入中相關);
- Progress(進度具體值相關);
- Status(狀態相關,例如成功、失敗等提示);
- Text(文字提示相關);
- Custom(自定義視圖相關)。
二、導入(Platform : ios >= 8.0)
方案1:CocoaPods
- 在Podfile文件加入
pod 'DMProgressHUD'
; - 在終端輸入
pod install
; - 在需要使用的地方導入頭文件
#import <DMProgressHUD.h>
。
方案2:直接導入到工程
- 把DMProgressHUD.h、DMProgressHUD.m和DMProgressImgs.bundle(圖片資源bundle)導入到工程目錄下;
- 在需要使用的地方導入頭文件
#import "DMProgressHUD.h"
。
三、快捷調用
註意:快捷調用使用預設的樣式(Style-Dark)、動畫(Animation-gradient)、遮蓋(Mask-None)。
1.Loading Mode
1.1 Loading-Indicator
DMProgressHUD *hud = [DMProgressHUD showLoadingHUDAddedTo:self.view]; //hud.loadingType = DMProgressHUDLoadingTypeIndicator;//預設 hud.text = @"Here's info"; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //非同步耗時操作 [self doSomething]; dispatch_async(dispatch_get_main_queue(), ^{ //返回主線程隱藏HUD [hud dismiss]; }); });
1.2 Loading-Circle
DMProgressHUD *hud = [DMProgressHUD showLoadingHUDAddedTo:self.view]; hud.loadingType = DMProgressHUDLoadingTypeCircle; hud.text = @"Here's info"; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //非同步耗時操作 [self doSomething]; dispatch_async(dispatch_get_main_queue(), ^{ //返回主線程隱藏HUD [hud dismiss]; }); });
2.Progress Mode
2.1 Progress-Circle
DMProgressHUD *hud = [DMProgressHUD showProgressHUDAddedTo:self.view]; //hud.progressType = DMProgressHUDProgressTypeCircle;//預設 hud.text = @"Here's info"; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //非同步耗時操作 [self doSomething]; dispatch_async(dispatch_get_main_queue(), ^{ //返回主線程隱藏HUD [hud dismiss]; }); });
2.2 Progress-Sector
DMProgressHUD *hud = [DMProgressHUD showProgressHUDAddedTo:self.view]; hud.progressType = DMProgressHUDProgressTypeSector; hud.text = @"Here's info"; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //非同步耗時操作 [self doSomething]; dispatch_async(dispatch_get_main_queue(), ^{ //返回主線程隱藏HUD [hud dismiss]; }); });
3.Status Mode
3.1 Success
DMProgressHUD *hud = [DMProgressHUD showStatusHUDAddedTo:self.view statusType:DMProgressHUDStatusTypeSuccess]; hud.text = @"Here's info"; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //非同步耗時操作 [self doSomething]; dispatch_async(dispatch_get_main_queue(), ^{ //返回主線程隱藏HUD [hud dismiss]; }); });
3.2 Fail
DMProgressHUD *hud = [DMProgressHUD showStatusHUDAddedTo:self.view statusType:DMProgressHUDStatusTypeFail]; hud.text = @"Here's info"; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //非同步耗時操作 [self doSomething]; dispatch_async(dispatch_get_main_queue(), ^{ //返回主線程隱藏HUD [hud dismiss]; }); });
3.3 Warning
DMProgressHUD *hud = [DMProgressHUD showStatusHUDAddedTo:self.view statusType:DMProgressHUDStatusTypeWarning]; hud.text = @"Here's info"; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //非同步耗時操作 [self doSomething]; dispatch_async(dispatch_get_main_queue(), ^{ //返回主線程隱藏HUD [hud dismiss]; }); });
4.Text Mode
4.1 Text
DMProgressHUD *hud = [DMProgressHUD showTextHUDAddedTo:self.view]; hud.text = @"Here's info"; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //非同步耗時操作 [self doSomething]; dispatch_async(dispatch_get_main_queue(), ^{ //返回主線程隱藏HUD [hud dismiss]; }); });
5.Custom Mode
5.1 Custom
DMProgressHUD *hud = [DMProgressHUD showHUDAddedTo:self.view]; hud.mode = DMProgressHUDModeCustom;//指定模式為自定義模式 hud.text = @"Here's info"; UIView *custom = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"person"]]; [hud setCustomView:custom width:180.0 height:180.0];//自定義View dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //非同步耗時操作 [self doSomething]; dispatch_async(dispatch_get_main_queue(), ^{ //返回主線程隱藏HUD [hud dismiss]; }); });
四、更多
- 關於調用:DMProgressHUD為調用者提供了快捷調用的方法,另外還提供了一些與額外功能相關的初始化方法供調用者使用;
- 關於外觀:DMProgressHUD提供兩種外觀樣式,對應分別是Dark/Light;
- 關於動畫:DMProgressHUD預設使用顏色漸變(alpha)動畫進行顯示/隱藏,另外還有增量式動畫和彈性動畫供使用者選擇;
- 關於遮蓋:DMProgressHUD預設不使用遮蓋,另外提供透明遮蓋和灰色遮蓋供使用者選擇;
以上所列舉關於DMProgressHUD的功能介紹,用戶可以通過 運行Demo 查看到相應的效果。除此之外,用戶還可以對HUD的 圖文間距、顏色等 進行自定義,可以在 DMProgressHUD.h 文件查看更多的API詳細介紹。
更多文章:簡書
聯繫方式(Email): [email protected]。