MBProgressHUD 優雅地去提示,mbprogresshud提示

來源:互聯網
上載者:User

MBProgressHUD 優雅地去提示,mbprogresshud提示

項目首頁: MBProgressHUD

執行個體下載: 點擊下載

快速上手:

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

[MBProgressHUD showHUDAddedTo:self.view animated:YES];dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{    // 執行某些任務...    dispatch_async(dispatch_get_main_queue(), ^{        [MBProgressHUD hideHUDForView:self.view animated:YES];    });});

如果你想配置 HUD,你可以使用由 showHUDAddedTo:animated: 方法返回的 MBProgressHUD 的執行個體.

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];hud.mode = MBProgressHUDModeAnnularDeterminate;hud.labelText = @"Loading";// doSomethngInBackgroudWithProgressCallback: 代指某個和進度有關的 自訂方法.[self doSomethingInBackgroundWithProgressCallback:^(float progress) {    hud.progress = progress;} completionCallback:^{    [hud hide:YES];}];

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 hideHUDForView:self.view animated:YES];});

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.