を使用してNSFetchedResultsController
を入力していUITableView
ます。取得には時間がかかるので、取得中に糸車をユーザーに提示したいと思います。
どうすればいいですか?
を使用してNSFetchedResultsController
を入力していUITableView
ます。取得には時間がかかるので、取得中に糸車をユーザーに提示したいと思います。
どうすればいいですか?
メインスレッドでスピナーを開始し、セカンダリスレッドの「重い作業」をプッシュする必要があります。作業が終わったらスピナーを止めます。次のようなものでそれを達成できます:
// 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
UIActivityMonitor
負荷の高い作業が開始されると、UI スレッドがブロックされるため、実際にはアニメーションが表示されません。
最後に、これをスピナーとして使用することをお勧めします。
それを行うにはいくつかの方法があります:
UINavigationBarUIBarItem
を使用して customView をUIActivityIndicator
関数の先頭に設定し、最後に非表示にする場合はありました。
ビューの中央にある「モーダル」ビューを作成し、UIActivityIndicator
このサブビューをテーブル ビューに追加して、関数の最後に削除します。