1
私はUITableView
で公開されているウェブからデータをダウンロードしています。応答性の高いUIが必要なので、私はGCD
で背景のダウンロードを使用しています。したがって、データがダウンロードされている間は空のUITableViewが表示されます(それほど美しくない)。そしてその上にUIActivtyIndicatorView
(IBのセットアップ)スピンがあります。iOS - UITableViewでオーバーレイを表示
私が望むのは、空のテーブルを表示して、その上にUIActivityIndicatorViewを含むグレーの画面を表示することです。
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSArray *downloadedCareerIds = [CareersParser idsFrom:@"web"];
NSArray *diskCareerIds = [CareersParser idsFrom:@"disk"];
BOOL equalIds = [downloadedCareerIds isEqualToArray:diskCareerIds];
if (!equalIds) {
DLog(@"ids not equal");
dispatch_async(dispatch_get_main_queue(), ^{
/* Send UI updates back to the main thread. */
// I think here would be a good idead to insert the gray view over the table
[loadingIndicator startAnimating];
// Do GUI stuff on the main thread ...
[loadingIndicator stopAnimating];
// Remove the gray view?
});
}
});
これはうまくいきましたが、追加されたサブビューがテーブルビューに表示されるまでわずかな遅延があり、0.5秒間空のテーブルが表示され、読み込み画面が表示されます。 –
質問にコメントがある灰色の表示を追加していますか?その場合、灰色の表示をあまり遅らさないようにするには、灰色の表示をviewDidLoadのテーブルビューに追加する必要があります。あなたはそれをインスタンス変数またはあなたがやっていることに応じてプロパティに保存し、以前と同じように削除することができます。 –