MBProgressHUD 優雅地去提示

2022-02-23 04:03:30 字數 1362 閱讀 1309

專案主頁: mbprogresshud

快速上手:

當執行需要較長時間的任務時,使用mbprogresshud最重要的一點是: 保證主線程是空閒的,這樣可以使ui實時更新.因此: 建議在 主線程中使用 mbprogresshud, 把其他你想要執行的任務放到其他的執行緒裡:

[mbprogresshud showhudaddedto:self.view animated:yes];

dispatch_async(dispatch_get_global_queue( dispatch_queue_priority_low, 0), ^);

});

如果你想配置 hud,你可以使用由 showhudaddedto:animated: 方法返回的 mbprogresshud 的例項.

mbprogresshud *hud = [mbprogresshud showhudaddedto:self.view animated:yes];

hud.mode = mbprogresshudmodeannulardeterminate;

hud.labeltext = @"loading";

// dosomethnginbackgroudwithprogresscallback: 代指某個和進度有關的 自定義方法.

[self dosomethinginbackgroundwithprogresscallback:^(float progress) completioncallback:^];

ui 更新,應該通常總是在主線程完成.但是某些 mbprogresshud 設定器,考慮到了」執行緒安全」,並且可以在後台執行緒裡被呼叫.這些設定器,具體指的是:setmode:,setcustomview:,setlabeltext:,setlabelfont:,setdetailslabeltext:,setdetailslabelfont:setprogress:.

如果你需要在主線程執行需要長時間執行的任務,你應該在短暫的延遲後再執行這個任務,這樣在你的任務阻塞主線程之前, uikit 就有足夠的時間來更新ui(如,繪製hud).

[mbprogresshud showhudaddedto:self.view animated:yes];

dispatch_time_t poptime = dispatch_time(dispatch_time_now, 0.01 * nsec_per_sec);

dispatch_after(poptime, dispatch_get_main_queue(), ^(void));

MBProgressHud 換行顯示

這樣子的類擴充套件可能很多人都見過,但是在最近的專案裡面出現了由於要顯示的提示資訊過長,被省略,資訊顯示不全的情況,故新增了幾個方法。專門用來顯示文字資訊,可以做到自適應文字大小。不多說,如下 h void showxymessage nsstring text void showxymessage...

MBProgressHUD覆蓋鍵盤

傳送訊息的時候,需要用mbprogresshud來覆蓋視窗等待傳送成功,但是無論如何鍵盤都覆蓋不上。於是各種研究,新增到view,新增到window,都無果。想破了腦子,總覺得加到window都覆蓋不了,這個比較奇葩 後來突然檢查了一下window的count,發現居然有2個window!我印象中i...

MBProgressHUD的基本使用

和github上的demo其實差不多,就是小整理了下,當備忘,想做複雜的效果可以參考mbprogresshud在github上的demo,寫得也很清楚明了。以下是 先在.h檔案裡定義 mbprogresshud hud cpp view plain copy 方式1.直接在view上show hud...