NSFetchedResultsController
を使用してUITableView
を入力しています。フェッチにはしばらく時間がかかるので、フェッチが実行されている間に回転ホイールをユーザに提示したいと思います。iOS:NSFetchResultsControllerがフェッチを実行しているときに回転ホイールを表示
どうすればいいですか?
NSFetchedResultsController
を使用してUITableView
を入力しています。フェッチにはしばらく時間がかかるので、フェッチが実行されている間に回転ホイールをユーザに提示したいと思います。iOS:NSFetchResultsControllerがフェッチを実行しているときに回転ホイールを表示
どうすればいいですか?
をダウンロードホイールを提示するUIActivityIndicatorViewを使用して、いくつかの良い繊細な方法を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をスピナーとして使用することをおすすめします。
あなたはそれを行うには、いくつかの方法があります:あなたはUINavigationBarを使用して、関数の先頭でUIActivityIndicator
へのCustomViewを設定し、最後にそれを隠す場合
はUIBarItem
を持っていました。
ビューの中央にUIActivityIndicator
の「モーダル」ビューを作成し、このサブビューをテーブルビューに追加し、関数の最後を削除します。
正式にちょうどあなたは、あなたがメインスレッドであなたのスピナーを開始し、「重いをプッシュする必要があるデモアプリケーションhere
これは私のために働く。私は 'NSFetchedResultsController'が別のスレッドでフェッチを実行したいと思っていませんでした。 –
Tiagoの賞を受賞しました。 Acho que aindanãoestása ver quem eu sou ... :) – Peres