DMProgressHUDiOS進(jìn)度加載提示工具
一、簡介
DMProgressHUD是一款用于顯示異步操作任務(wù)進(jìn)度狀態(tài)的視圖工具。
該工具包含了目前較為主流的加載狀態(tài)視圖類型,后續(xù)會(huì)根據(jù)具體情況或需求進(jìn)行迭代。
DMProgressHUD從設(shè)計(jì)層次的角度來看,其包含了5種展示模式:
Loading(加載中相關(guān));
Progress(進(jìn)度具體值相關(guān));
Status(狀態(tài)相關(guān),例如成功、失敗等提示);
Text(文字提示相關(guān));
Custom(自定義視圖相關(guān))。
二、導(dǎo)入(Platform : ios >= 8.0)
方案1:CocoaPods
在Podfile文件加入
pod 'DMProgressHUD';在終端輸入
pod install;在需要使用的地方導(dǎo)入頭文件
#import <DMProgressHUD.h>。
方案2:直接導(dǎo)入到工程
把DMProgressHUD.h、DMProgressHUD.m和DMProgressImgs.bundle(圖片資源bundle)導(dǎo)入到工程目錄下;
在需要使用的地方導(dǎo)入頭文件
#import "DMProgressHUD.h"。
三、快捷調(diào)用
注意:快捷調(diào)用使用默認(rèn)的樣式(Style-Dark)、動(dòng)畫(Animation-gradient)、遮蓋(Mask-None)。
1.Loading Mode
1.1 Loading-Indicator
loading_indicator.gif
DMProgressHUD *hud = [DMProgressHUD showLoadingHUDAddedTo:self.view];
//hud.loadingType = DMProgressHUDLoadingTypeIndicator;//默認(rèn)
hud.text = @"Here's info";
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//異步耗時(shí)操作
[self doSomething];
dispatch_async(dispatch_get_main_queue(), ^{
//返回主線程隱藏HUD
[hud dismiss];
});
});
1.2 Loading-Circle
loading_circle_.gif
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), ^{
//異步耗時(shí)操作
[self doSomething];
dispatch_async(dispatch_get_main_queue(), ^{
//返回主線程隱藏HUD
[hud dismiss];
});
});
2.Progress Mode
2.1 Progress-Circle
progress_circle.gif
DMProgressHUD *hud = [DMProgressHUD showProgressHUDAddedTo:self.view];
//hud.progressType = DMProgressHUDProgressTypeCircle;//默認(rèn)
hud.text = @"Here's info";
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//異步耗時(shí)操作
[self doSomething];
dispatch_async(dispatch_get_main_queue(), ^{
//返回主線程隱藏HUD
[hud dismiss];
});
});
2.2 Progress-Sector
progress_sector.gif
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), ^{
//異步耗時(shí)操作
[self doSomething];
dispatch_async(dispatch_get_main_queue(), ^{
//返回主線程隱藏HUD
[hud dismiss];
});
});
3.Status Mode
3.1 Success
status_success.gif
DMProgressHUD *hud = [DMProgressHUD showStatusHUDAddedTo:self.view statusType:DMProgressHUDStatusTypeSuccess];
hud.text = @"Here's info";
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//異步耗時(shí)操作
[self doSomething];
dispatch_async(dispatch_get_main_queue(), ^{
//返回主線程隱藏HUD
[hud dismiss];
});
});
3.2 Fail
status_fail.gif
DMProgressHUD *hud = [DMProgressHUD showStatusHUDAddedTo:self.view statusType:DMProgressHUDStatusTypeFail];
hud.text = @"Here's info";
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//異步耗時(shí)操作
[self doSomething];
dispatch_async(dispatch_get_main_queue(), ^{
//返回主線程隱藏HUD
[hud dismiss];
});
});
3.3 Warning
status_warning.gif
DMProgressHUD *hud = [DMProgressHUD showStatusHUDAddedTo:self.view statusType:DMProgressHUDStatusTypeWarning];
hud.text = @"Here's info";
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//異步耗時(shí)操作
[self doSomething];
dispatch_async(dispatch_get_main_queue(), ^{
//返回主線程隱藏HUD
[hud dismiss];
});
});
4.Text Mode
4.1 Text
text.gif
DMProgressHUD *hud = [DMProgressHUD showTextHUDAddedTo:self.view];
hud.text = @"Here's info";
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//異步耗時(shí)操作
[self doSomething];
dispatch_async(dispatch_get_main_queue(), ^{
//返回主線程隱藏HUD
[hud dismiss];
});
});
5.Custom Mode
5.1 Custom
custom.gif
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), ^{
//異步耗時(shí)操作
[self doSomething];
dispatch_async(dispatch_get_main_queue(), ^{
//返回主線程隱藏HUD
[hud dismiss];
});
});
四、更多
關(guān)于調(diào)用:DMProgressHUD為調(diào)用者提供了快捷調(diào)用的方法,另外還提供了一些與額外功能相關(guān)的初始化方法供調(diào)用者使用;
關(guān)于外觀:DMProgressHUD提供兩種外觀樣式,對應(yīng)分別是Dark/Light;
關(guān)于動(dòng)畫:DMProgressHUD默認(rèn)使用顏色漸變(alpha)動(dòng)畫進(jìn)行顯示/隱藏,另外還有增量式動(dòng)畫和彈性動(dòng)畫供使用者選擇;
關(guān)于遮蓋:DMProgressHUD默認(rèn)不使用遮蓋,另外提供透明遮蓋和灰色遮蓋供使用者選擇;
以上所列舉關(guān)于DMProgressHUD的功能介紹,用戶都可以 運(yùn)行Demo 查看到相應(yīng)的效果。除此之外,用戶還可以對HUD的 圖文間距、顏色等 進(jìn)行自定義,可以在 DMProgressHUD.h 文件查看更多的API詳細(xì)介紹。
由于時(shí)間倉促,本人技術(shù)水平有限,出現(xiàn)錯(cuò)誤或疏漏之處請批評指正,也可以在下方留言或發(fā)送Email至[email protected]。
Github地址:DMProgressHUD
