0

を使用してNSFetchedResultsControllerを入力していUITableViewます。取得には時間がかかるので、取得中に糸車をユーザーに提示したいと思います。

どうすればいいですか?

4

3 に答える 3

3

メインスレッドでスピナーを開始し、セカンダリスレッドの「重い作業」をプッシュする必要があります。作業が終わったらスピナーを止めます。次のようなものでそれを達成できます:

    // 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 スレッドがブロックされるため、実際にはアニメーションが表示されません。

最後に、これをスピナーとして使用することをお勧めします。

于 2012-05-10T09:40:32.283 に答える
0

正式には、UIActivityIndi​​catorView を使用してホイールを表示し、ここから MBHoods を使用して、ここからデモ アプリをダウンロードすることができます。

于 2012-05-10T09:40:30.527 に答える
0

それを行うにはいくつかの方法があります:

UINavigationBarUIBarItemを使用して customView をUIActivityIndicator関数の先頭に設定し、最後に非表示にする場合はありました。

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

于 2012-05-10T09:39:45.993 に答える