MBprogressHUD

- (void)testMBProgressHUD

{

NSLog(@"test? MBProgressHUD ");

/*

要將一個MBProgressHUD顯示出來,1,創建對象;2,將HUD添加到view上;3,調用show方法

隱藏,1,hide:方法;? 2,hide: afterDelay: 方法

其它的用法都是特殊的設置等

*/

HUD = [[MBProgressHUD alloc] init];

[self.view addSubview:HUD];

//??? HUD.mode = MBProgressHUDModeIndeterminate;//菊花,默認值

//??? HUD.mode = MBProgressHUDModeDeterminate;//圓餅,餅狀圖

//??? HUD.mode = MBProgressHUDModeDeterminateHorizontalBar;//進度條

HUD.mode = MBProgressHUDModeAnnularDeterminate;//圓環作為進度條

//??? HUD.mode = MBProgressHUDModeCustomView; //需要設置自定義視圖時候設置成這個

//??? HUD.mode = MBProgressHUDModeText; //只顯示文本

//1,設置背景框的透明度? 默認0.8

HUD.opacity = 1;

//2,設置背景框的背景顏色和透明度, 設置背景顏色之后opacity屬性的設置將會失效

HUD.color = [UIColor redColor];

HUD.color = [HUD.color colorWithAlphaComponent:1];

//3,設置背景框的圓角值,默認是10

HUD.cornerRadius = 20.0;

//4,設置提示信息 信息顏色,字體

HUD.labelColor = [UIColor blueColor];

HUD.labelFont = [UIFont systemFontOfSize:13];

HUD.labelText = @"Loading...";

//5,設置提示信息詳情 詳情顏色,字體

HUD.detailsLabelColor = [UIColor blueColor];

HUD.detailsLabelFont = [UIFont systemFontOfSize:13];

HUD.detailsLabelText = @"LoadingLoading...";

//6,設置菊花顏色? 只能設置菊花的顏色

HUD.activityIndicatorColor = [UIColor blackColor];

//7,設置一個漸變層

HUD.dimBackground =YES;

//8,設置動畫的模式

//??? HUD.mode = MBProgressHUDModeIndeterminate;

//9,設置提示框的相對于父視圖中心點的便宜,正值 向右下偏移,負值左上

HUD.xOffset = -80;

HUD.yOffset = -100;

//10,設置各個元素距離矩形邊框的距離

HUD.margin = 0;

//11,背景框的最小大小

HUD.minSize = CGSizeMake(50, 50);

//12設置背景框的實際大小?? readonly

CGSize size = HUD.size;

//13,是否強制背景框寬高相等

HUD.square =YES;

//14,設置顯示和隱藏動畫類型? 有三種動畫效果,如下

//??? HUD.animationType = MBProgressHUDAnimationFade; //默認類型的,漸變

//??? HUD.animationType = MBProgressHUDAnimationZoomOut; //HUD的整個view后退 然后逐漸的后退

HUD.animationType = MBProgressHUDAnimationZoomIn;//和上一個相反,前近,最后淡化消失

//15,設置最短顯示時間,為了避免顯示后立刻被隱藏?? 默認是0

//??? HUD.minShowTime = 10;

//16,

/*

// 這個屬性設置了一個寬限期,它是在沒有顯示HUD窗口前被調用方法可能運行的時間。

// 如果被調用方法在寬限期內執行完,則HUD不會被顯示。

// 這主要是為了避免在執行很短的任務時,去顯示一個HUD窗口。

// 默認值是0。只有當任務狀態是已知時,才支持寬限期。具體我們看實現代碼。

@property (assign) float graceTime;

// 這是一個標識位,標明執行的操作正在處理中。這個屬性是配合graceTime使用的。

// 如果沒有設置graceTime,則這個標識是沒有太大意義的。在使用showWhileExecuting:onTarget:withObject:animated:方法時,

// 會自動去設置這個屬性為YES,其它情況下都需要我們自己手動設置。

@property (assign) BOOL taskInProgress;

*/

//17,設置隱藏的時候是否從父視圖中移除,默認是NO

HUD.removeFromSuperViewOnHide =NO;

//18,進度指示器? 模式是0,取值從0.0————1.0

//??? HUD.progress = 0.5;

//19,隱藏時候的回調 隱藏動畫結束之后

HUD.completionBlock = ^(){

NSLog(@"abnnfsfsf");

};

//設置任務,在hud上顯示任務的進度

[HUD showWhileExecuting:@selector(myProgressTask) onTarget:selfwithObject:nilanimated:YES];

//??? [HUD show:YES];

//兩種隱藏的方法

//??? [HUD hide:YES];

[HUD hide:YESafterDelay:5];

}

//任務,測試進度顯示

- (void)myProgressTask {

// This just increases the progress indicator in a loop

floatprogress = 0.0f;

while(progress < 1.0f) {

progress += 0.01f;

HUD.progress = progress;

usleep(50000);

}

}

MBProgressHUD 使用詳解

1,MBProgressHUDMode枚舉

MBProgressHUD中定義的MBProgressHUDMode枚舉。它用來表示HUD窗口的模式,即我們從效果圖中看到的幾種顯示樣式。

typedef?enum?{

//?使用UIActivityIndicatorView來顯示進度,這是默認值

MBProgressHUDModeIndeterminate,

//?使用一個圓形餅圖來作為進度視圖

MBProgressHUDModeDeterminate,

//?使用一個水平進度條

MBProgressHUDModeDeterminateHorizontalBar,

//?使用圓環作為進度條

MBProgressHUDModeAnnularDeterminate,

//?顯示一個自定義視圖,通過這種方式,可以顯示一個正確或錯誤的提示圖

MBProgressHUDModeCustomView,

//?只顯示文本

MBProgressHUDModeText

}?MBProgressHUDMode;

2,MBProgressHUD的基本組成:

A,loading動畫:就是MBProgressHUD上部分顯示的動畫效果的一部分,這個區域也可以使用我們自己設定的UIImageView視圖,這個視圖顯示內容由我們設置的模式來決定,可以是菊花,進度條,圓環,也可以我們自定義視圖。

B,標題文本:主要用于顯示提示信息。這個文本框是可選的,通常位于loading動畫的下面,且是單行顯示。它會根據labelText屬性來自適應文本的大小,有上限,過長會顯示“…”。

C,詳情文本框。如果覺得標題不夠詳細,這里可以添加附屬信息,可以將詳細信息放到這里,該文本框顯示的是detailLabelText屬性的值,它是多行顯示的。另外詳情顯示還依賴于labelText屬性的值,只有labelText屬性被設置了,并且不是空串,才會顯示detailsLabel。

D,HUD背景框:主要作用是上面三個部分的一個背景,用來突出顯示上面三部分。

3,MBProgressHUD?常用屬性

MBProgressHUD幾個常用的屬性:

//?背景框的透明度,默認值是0.8

@property?(assign)?float?opacity;

//?背景框的顏色

//?需要注意的是如果設置了這個屬性,則opacity屬性會失效,即不會有半透明效果

@property?(MB_STRONG)?UIColor?*color;

//?背景框的圓角半徑。默認值是10.0

@property?(assign)?float?cornerRadius;

//?標題文本的字體及顏色

@property?(MB_STRONG)?UIFont*?labelFont;

@property?(MB_STRONG)?UIColor*?labelColor;

//?詳情文本的字體及顏色

@property?(MB_STRONG)?UIFont*?detailsLabelFont;

@property?(MB_STRONG)?UIColor*?detailsLabelColor;

//?菊花的顏色,默認是白色

@property?(MB_STRONG)?UIColor?*activityIndicatorColor;

dimBackground?屬性,由中心向MBProgressHUD視圖的四周繪制了一個漸變層。

@property (assign) BOOL dimBackground;

//設置 MBProgressHUD 顯示的動畫模式

@property (assign) MBProgressHUDMode mode;

控制HUD的布局的幾個屬性:

//?HUD相對于父視圖中心點的x軸偏移量和y軸偏移量

@property?(assign)?float?xOffset;

@property?(assign)?float?yOffset;

//?HUD各元素與HUD邊緣的間距

@property?(assign)?float?margin;

//?HUD背景框的最小大小

@property?(assign)?CGSize?minSize;

//?HUD的實際大小

@property?(atomic,?assign,?readonly)?CGSize?size;

//?是否強制HUD背景框寬高相等

@property?(assign,?getter?=?isSquare)?BOOL?square;

MBProgressHUD是顯示或者隱藏時候提供的屬性:

// HUD顯示和隱藏的動畫類型

@property (assign) MBProgressHUDAnimation animationType;

// HUD顯示的最短時間。設置這個值是為了避免HUD顯示后立即被隱藏。默認值為0

@property (assign) float minShowTime;

// 這個屬性設置了一個寬限期,它是在沒有顯示HUD窗口前被調用方法可能運行的時間。

// 如果被調用方法在寬限期內執行完,則HUD不會被顯示。

// 這主要是為了避免在執行很短的任務時,去顯示一個HUD窗口。

// 默認值是0。只有當任務狀態是已知時,才支持寬限期。具體我們看實現代碼。

@property (assign) float graceTime;

// 這是一個標識位,標明執行的操作正在處理中。這個屬性是配合graceTime使用的。

// 如果沒有設置graceTime,則這個標識是沒有太大意義的。在使用showWhileExecuting:onTarget:withObject:animated:方法時,

// 會自動去設置這個屬性為YES,其它情況下都需要我們自己手動設置。

@property (assign) BOOL taskInProgress;

// 隱藏時是否將HUD從父視圖中移除,默認是NO。

@property (assign) BOOL removeFromSuperViewOnHide;

// 進度指示器,從0.0到1.0,默認值為0.0

@property (assign) float progress;

// 在HUD被隱藏后的回調

@property (copy) MBProgressHUDCompletionBlock completionBlock;

注意:

1),MBProgressHUD視圖會充滿其父視圖的frame內,因此,當MBProgressHUD顯示時,它也會屏蔽父視圖的各種交互操作。

2)自定義loading動畫視圖,此時選擇的模式是MBProgressHUDModeCustomView。或者不顯示loading動畫視圖,而只顯示文本框(MBProgressHUDModeText)。

3)對于HUD的隱藏,MBProgressHUD提供了兩個方法,一個是-hide:,另一個是-hide:afterDelay:,后者基于前者

4)MBProgressHUD還為我們提供了幾個便捷顯示和隱藏HUD窗口的方法

+ (MB_INSTANCETYPE)showHUDAddedTo:(UIView *)view animated:(BOOL)animated

+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated

+ (NSUInteger)hideAllHUDsForView:(UIView *)view animated:(BOOL)animated

5)MBProgressHUD還為我們提供了一個代理MBProgressHUDDelegate,這個代理中只提供了一個方法,即:

- (void)hudWasHidden:(MBProgressHUD *)hud;//隱藏HUD后調用的方法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內容

  • 源碼來源:gitHub源碼 轉載于: CocoaChina 來源:南峰子的技術博客 版本:0.9.1 MBPr...
    李小六_閱讀 6,445評論 2 5
  • 平常寫代碼。我們經常會使用到MBProgressHUD,但是隨著版本的更新,我發現好多屬性都被廢棄,這里貼上最新詳...
    isaaczcbj閱讀 11,123評論 1 9
  • MBProgressHUD作為 github上一款頗受大家歡迎的第三方提示框框架,為很多iOS開發者喜愛。 MBP...
    郭榮偉閱讀 14,805評論 1 12
  • 1-研究人性 和 動機,人有什么痛點,不得不做的事情 2-反思我是誰,我非常了解我自己嗎,我是什么性格,網上進行p...
    QiDianAmmon閱讀 225評論 0 0
  • 閑適下來,不做任何事,把腦海放空,穿過窗,看著火紅的夕陽余光傾瀉在墻上,整個房子變得金黃,如童話中的夢幻堡壘一般。...
    天離墨閱讀 250評論 0 0