我有一個TableView加載自定義單元格並從服務器上的JSON字符串加載數據。 JSON字符串被解析爲14個ID(id_array)的數組。UITableView正在加載相同的單元格某種原因
如果cell==nil
,那麼我使用[id_array objectAtIndex:indexPath.row]
來獲取ID並從服務器獲取關於該行的更多信息,並設置單元格的標籤和圖像。
當運行應用程序時,UITableView加載可見行[0,1,2,3,4](單元格高度爲70px)。 當向下滾動TableView時,行[5]被加載並從服務器獲取數據,但問題是超出這一點--TableView正在重複這6行,而不是從服務器爲新行請求新數據。
但它的確請求了行[5]的新數據,當應用程序第一次運行時,它不可見(也未加載)。
任何人都知道爲什麼會發生這種情況? 謝謝!
編輯:這是我的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