2014-04-19 41 views
0

我正在展示一個MBProgressHUD動畫,同時加載了UITableView顯示異常MBProgressHUD實施的進度。

我基本上創建了HUDviewDidLoad,然後我觸發一個包含所有UITableView代碼的選擇器。

self.HUD = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES]; 

    self.HUD.mode = MBProgressHUDAnimationFade; 
    self.HUD.labelText = @"Finding Friends"; 

    [self performSelector:@selector(myTask) withObject:nil afterDelay:0.001]; 

我這樣做是因爲我的表視圖阻止主線程。所以基本上這允許我在表視圖開始之前創建HUD並阻止主線程。這樣HUD在整個表格視圖設置期間實際上可見。

我從MBProgressHUD的創作者在這裏提出這個計算器後,上面的代碼:Run MBProgressHUD in another thread?

不過,現在我希望能夠使用HUD顯示錶視圖的實際進度是設置,但我很困惑如何做到這一點。現在我只顯示一個「旋轉」的動畫,但實際上並沒有顯示真正的進展。它只是旋轉。

我想用一個動畫這樣的:http://dl.dropboxusercontent.com/u/378729/MBProgressHUD/4.png

然後把它作爲填表格視圖代碼運行。

我接受任何建議和感謝您的幫助。

回答

0

試試這個:

將這段代碼添加到您的viewDidLoad方法中。執行該塊時,爲tableView設置代表,以便可以將數據加載到表視圖上

MBProgressHUD *progressView = [[MBProgressHUD alloc] initWithView:self.view]; 
      [self.view addSubview:progressView]; 
      progressView.labelText = kLoadingMessage; 

      [progressView showAnimated:YES whileExecutingBlock:^ 
      { 

       self.tableView.datasource = self; 
       self.tableView.delegate = self; 

      } 
         completionBlock:^ 
      { 
       [progressView removeFromSuperview]; 
      }]; 
+0

到目前爲止,它仍未顯示任何進度。我複製了上面的確切代碼,並將其放在viewDidLoad中。然後,我將所有的UITableView設置代碼放在「whileExecutingBlock」中,然後將[self.tableView reloadData]的方法調用添加到完成塊中。 – user3344977