HTMLからデータをフェッチするUITableViewがあります。フェッチは正常に機能しており、通常、1、2、3、4、5 から 20 まで、約 20 個のセルを表示します。
ただし、フェッチ後、セルはすべてのセルの最初のセルのコンテンツのみを表示します。(つまり、1, 1, 1, 1, 1, 1) 下にスクロールすると、6, 7, 8, ... , 20 が表示されます。もう一度上にスクロールすると、表が次のようになります。正常...
コードをテストしていたところ、insertNewObject クラスで 0 インデックスに挿入すると、すべてが正常になることがわかりました。ただし、オブジェクトを追加したり、最後のインデックスにオブジェクトを挿入したりするだけでは機能しません。
insertNewObject クラスのコードは次のとおりです。
- (void)insertNewObject:(id)sender {
if (!_objects) {
_objects = [[NSMutableArray alloc] init];
}
// Working code, but I want the order from the top 1, 2, 3, ..., 20 rather than
// 20, 19, 18, ..., 2, 1
// [_objects insertObject:sender atIndex:0];
// And the code below doesn't show up correctly...
// [_objects insertObject:sender atIndex:(_objects.count)];
// [_objects addObject:sender];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
非常に奇妙です。これは描画に関係していると思います。なぜなら、UITableView は、上下にスクロールし続けてディスプレイを「きれいにする」と、すべてが正常に表示されるためです...しかし、setDisplay を実行しても、何も起こりませんでした... テーブルを更新していますどちらも問題を解決しません...
何か案が?ありがとう