我知道还有很多其他关于 [indexPath row] 和滚动的问题,但是任何人都可以帮助我理解为什么它返回奇怪的数字吗?我似乎无法为我配置单元格的方式找到解决方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ProfileIdentifier";
NSUInteger row = [indexPath row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil){
//My custom xib file is named "ProfileCell.xib"
[[NSBundle mainBundle] loadNibNamed:@"ProfileCell" owner:self options:nil];
cell = profileCell;
self.profileCell = nil;
}
//name and info are both of type NSArray
labelName.text = [name objectAtIndex:row];
labelInfo.text = [info objectAtIndex:row];
NSLog(@"Row: %d", row);
return cell;
}
控制台在加载时返回:
2012-08-26 09:09:10.966 导航 [8028:f803] 行:0
2012-08-26 09:09:10.983 导航[8028:f803] 行:1
2012-08-26 09:09:10.986 导航[8028:f803] 行:2
2012-08-26 09:09:10.996 导航[8028:f803] 行:3
2012-08-26 09:09:10.999 导航 [8028:f803] 行:4
2012-08-26 09:09:11.002 导航[8028:f803] 行:5
2012-08-26 09:09:11.004 导航[8028:f803] 行:6
2012-08-26 09:09:11.007 导航 [8028:f803] 行:7
2012-08-26 09:09:11.010 导航[8028:f803] 行:8
2012-08-26 09:09:11.012 导航[8028:f803] 行:9
然后,当我向下滚动到屏幕外的单元格时,它会返回此信息:
2012-08-26 09:09:12.354 导航[8028:f803] 行:3
2012-08-26 09:09:12.404 导航[8028:f803] 行:2
2012-08-26 09:09:12.471 导航 [8028:f803] 行:1
2012-08-26 09:09:12.622 导航 [8028:f803] 行:0
每次用户滚动时,我的 labelName.text 和 labelInfo.text 都会发生变化。
但是,唯一受影响的单元格是底部的单元格。如何保持第 9 个单元格的 labelName 与 [indexPath row] 一致?