私のアプリにはサーバーからのリストがあり、スクロールがダウンするたびに新しいデータのリクエストを送信してリロードします。セルを10個受け取りました。これはうまくいきます。
しかし、問題は、たとえば1つのセルで値を変更すると、セル8、15などで値が変更されることです。
データは、サーバーから情報を取得してセルに表示するクラスです。getDataAt は、値をセルに入れるセル クラスのメソッドです。
numberOfRowsInSection では、リストが完全かどうかを確認すると、テーブル ビューに追加のセルが表示され、さらに行が読み込まれます。リストが不完全な場合は、表示する行がこれ以上ないことを意味し、このセルは表示されません。
コード :
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row < [self.list size])
{
static NSString *cellIdentifier = @"CellIdentifier";
self.cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
Data* data = [self.list getDataAt:indexPath.row];
NSLog(@"%@", indexPath);
cell.delegate = self;
[cell setCell:data];
return _cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.list size] + (self.list.complete ? 0 : 1);
}
私がこれまでに見つけたのは、上下にスクロールすると indexPath が混乱し、さらに 10 個のセルを追加すると、前のセルの indexPath.row が必要になることです。