MBprogressHUD

- (void)testMBProgressHUD

{

NSLog(@"test? MBProgressHUD ");

/*

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

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

其它的用法都是特殊的設(shè)置等

*/

HUD = [[MBProgressHUD alloc] init];

[self.view addSubview:HUD];

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

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

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

HUD.mode = MBProgressHUDModeAnnularDeterminate;//圓環(huán)作為進度條

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

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

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

HUD.opacity = 1;

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

HUD.color = [UIColor redColor];

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

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

HUD.cornerRadius = 20.0;

//4,設(shè)置提示信息 信息顏色,字體

HUD.labelColor = [UIColor blueColor];

HUD.labelFont = [UIFont systemFontOfSize:13];

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

//5,設(shè)置提示信息詳情 詳情顏色,字體

HUD.detailsLabelColor = [UIColor blueColor];

HUD.detailsLabelFont = [UIFont systemFontOfSize:13];

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

//6,設(shè)置菊花顏色? 只能設(shè)置菊花的顏色

HUD.activityIndicatorColor = [UIColor blackColor];

//7,設(shè)置一個漸變層

HUD.dimBackground =YES;

//8,設(shè)置動畫的模式

//??? HUD.mode = MBProgressHUDModeIndeterminate;

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

HUD.xOffset = -80;

HUD.yOffset = -100;

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

HUD.margin = 0;

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

HUD.minSize = CGSizeMake(50, 50);

//12設(shè)置背景框的實際大小?? readonly

CGSize size = HUD.size;

//13,是否強制背景框?qū)捀呦嗟?/p>

HUD.square =YES;

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

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

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

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

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

//??? HUD.minShowTime = 10;

//16,

/*

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

// 如果被調(diào)用方法在寬限期內(nèi)執(zhí)行完,則HUD不會被顯示。

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

// 默認值是0。只有當(dāng)任務(wù)狀態(tài)是已知時,才支持寬限期。具體我們看實現(xiàn)代碼。

@property (assign) float graceTime;

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

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

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

@property (assign) BOOL taskInProgress;

*/

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

HUD.removeFromSuperViewOnHide =NO;

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

//??? HUD.progress = 0.5;

//19,隱藏時候的回調(diào) 隱藏動畫結(jié)束之后

HUD.completionBlock = ^(){

NSLog(@"abnnfsfsf");

};

//設(shè)置任務(wù),在hud上顯示任務(wù)的進度

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

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

//兩種隱藏的方法

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

[HUD hide:YESafterDelay:5];

}

//任務(wù),測試進度顯示

- (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,

//?使用圓環(huán)作為進度條

MBProgressHUDModeAnnularDeterminate,

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

MBProgressHUDModeCustomView,

//?只顯示文本

MBProgressHUDModeText

}?MBProgressHUDMode;

2,MBProgressHUD的基本組成:

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

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

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

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

3,MBProgressHUD?常用屬性

MBProgressHUD幾個常用的屬性:

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

@property?(assign)?float?opacity;

//?背景框的顏色

//?需要注意的是如果設(shè)置了這個屬性,則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;

//設(shè)置 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背景框?qū)捀呦嗟?/p>

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

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

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

@property (assign) MBProgressHUDAnimation animationType;

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

@property (assign) float minShowTime;

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

// 如果被調(diào)用方法在寬限期內(nèi)執(zhí)行完,則HUD不會被顯示。

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

// 默認值是0。只有當(dāng)任務(wù)狀態(tài)是已知時,才支持寬限期。具體我們看實現(xiàn)代碼。

@property (assign) float graceTime;

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

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

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

@property (assign) BOOL taskInProgress;

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

@property (assign) BOOL removeFromSuperViewOnHide;

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

@property (assign) float progress;

// 在HUD被隱藏后的回調(diào)

@property (copy) MBProgressHUDCompletionBlock completionBlock;

注意:

1),MBProgressHUD視圖會充滿其父視圖的frame內(nèi),因此,當(dāng)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后調(diào)用的方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

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