右側に詳細ラベルが付いたテーブル ビューがあります。このラベルは、connectionDidFinishLoading 関数の JSON 呼び出しから入力したエンティティによって入力されます。問題は、 cellFromRowAtIndexPath 関数が connectionDidFinishLoading 関数の前に起動するため、ページを再描画する画面をプルダウンするまで、テーブル ビューに値が表示されないことです。これらの関数の両方の最後にテーブル ビューを更新しようとしましたが、うまくいきません。なぜこれが起こっているのか、どうすれば修正できるのか、誰かが私に手がかりを与えることができますか.
4 に答える
1
connectionDidFinishLoading の最後にテーブル データをリロードする必要があります。ふたつのやり方:
最初:
[tableView reloadData];
二番目:
NSArray* rows = [tableView indexPathsForVisibleRows];
[tableView beginUpdates];
[tableView reloadRowsAtIndexPaths:rows withRowAnimation:UITableViewRowAnimationFade];
[tableView endUpdates];
于 2012-10-11T22:21:18.637 に答える
1
reloadData
メインスレッドで呼び出していますか?connectionDidFinishLoading
バックグラウンドスレッドで実行されているようです。
于 2012-10-12T00:30:35.210 に答える
0
reloadData
入力した後、tableViewを呼び出します。
于 2012-10-11T22:17:55.343 に答える
0
これでうまくいくはずです。すべての UI の更新と操作は、メイン スレッドから実行する必要があります。
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
于 2015-04-22T21:54:08.070 に答える