カスタムセルを読み込んで、JSON文字列のデータをサーバーにロードしているTableViewがあります。 JSON文字列は、14個のID(id_array)の配列に解析されます。UITableViewは何らかの理由で同じセルをロードしています
[id_array objectAtIndex:indexPath.row]
の場合はIDを取得し、サーバーからその行の詳細を取得し、セルのラベルと画像を設定します。
このアプリケーションを実行すると、UITableViewは表示行[0,1,2,3,4](セルの高さは70px)を読み込みます。 TableViewをスクロールすると、row [5]がロードされ、サーバーからデータをフェッチしますが、問題はそのポイントを超えています - TableViewは新しい行のサーバーから新しいデータを要求するのではなく、
しかし、アプリケーションが最初に実行されたときに表示されない(ロードされない)行[5]の新しいデータを要求します。
誰もが、なぜこのようなことが起こっているのか考えていますか? ありがとう!
編集:あなただけcell==nil
場合、それはあなたの問題であるデータを設定している場合はここに私のcellForRowAtIndexPathメソッド
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CustomCell";
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[UITableViewCell class]]) {
cell = (CustomCell *)currentObject;
NSString *appsURL = [NSString stringWithFormat:@"http://myAPI.com?id=%@",[app_ids objectAtIndex:indexPath.row]];
NSLog(@"row -> %d | id -> %@",indexPath.row,[app_ids objectAtIndex:indexPath.row]);
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:appsURL]];
[cell updateAppInfoForCellWithRequest:request];
break;
}
}
}
// Configure the cell...
return cell;
}
これまでの質問のいくつかに対する受諾回答を改善すると、ヘルプが表示される可能性が高くなります。 – highlycaffeinated
cellForRowメソッド全体を送信する必要があります。 – Trevor
高カフェインと同意すると、あなたを助けるために時間を費やしている人々のためのより多くの敬意が示されます。 – MarkPowell