1

私はUITableViewで公開されているウェブからデータをダウンロードしています。応答性の高いUIが必要なので、私はGCDで背景のダウンロードを使用しています。したがって、データがダウンロードされている間は空のUITableViewが表示されます(それほど美しくない)。そしてその上にUIActivtyIndicatorView(IBのセットアップ)スピンがあります。iOS - UITableViewでオーバーレイを表示

私が望むのは、空のテーブルを表示して、その上にUIActivityIndi​​catorViewを含むグレーの画面を表示することです。

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

だけのUITableViewの境界を持つ灰色のビューを作る、とのtableViewのサブビューとして追加:

私がこれまで持っているコードは、このです。読み込みが完了したら、グレーの表示を削除します。

+0

これはうまくいきましたが、追加されたサブビューがテーブルビューに表示されるまでわずかな遅延があり、0.5秒間空のテーブルが表示され、読み込み画面が表示されます。 –

+0

質問にコメントがある灰色の表示を追加していますか?その場合、灰色の表示をあまり遅らさないようにするには、灰色の表示をviewDidLoadのテーブルビューに追加する必要があります。あなたはそれをインスタンス変数またはあなたがやっていることに応じてプロパティに保存し、以前と同じように削除することができます。 –

関連する問題