2012-05-10 11 views

答えて

3

をダウンロードホイールを提示するUIActivityIndi​​catorViewを使用して、いくつかの良い繊細な方法をhereからMBHoodsを使用することができますセカンダリスレッドのための "仕事"。作業が終了したら、スピナーを停止します。メインスレッドでは次のことを行う

// Start the spinning here. 
    [mySpinner startAnimating]; 
    // Declare the queue 
    dispatch_queue_t workingQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 
    // it's not, so we will start a background process to calculate it and not block the UI 
    dispatch_async(workingQueue, 
        ^{ 
         // Some heavy work here. 

         dispatch_async(dispatch_get_main_queue(), ^{ 
          // stop the spinner here 
          [mySpinner stopAnimating]; 
         }); 
        }); 

文句を言わないあなたが望むものを達成します:あなたはこのような何かをすることを達成することができます

Start Spinner => Heavy work => Stop Spinner 

ヘビーな作業が始まると、それはあなたのUIスレッドをブロックします、実際にはUIActivityMonitorのアニメーションが表示されることはありません。

終了するには、thisをスピナーとして使用することをおすすめします。

+0

これは私のために働く。私は 'NSFetchedResultsController'が別のスレッドでフェッチを実行したいと思っていませんでした。 –

+0

Tiagoの賞を受賞しました。 Acho que aindanãoestása ver quem eu sou ... :) – Peres

0

あなたはそれを行うには、いくつかの方法があります:あなたはUINavigationBarを使用して、関数の先頭でUIActivityIndicatorへのCustomViewを設定し、最後にそれを隠す場合

UIBarItemを持っていました。

ビューの中央にUIActivityIndicatorの「モーダル」ビューを作成し、このサブビューをテーブルビューに追加し、関数の最後を削除します。

0

正式にちょうどあなたは、あなたがメインスレッドであなたのスピナーを開始し、「重いをプッシュする必要があるデモアプリケーションhere

関連する問題