这里有一个视频,记录了在单元格中记录索引路径的过程(请参见下面的新链接)
又是一个奇怪的问题... 在我的家用iMac上(全新),当我在模拟器中第一次运行Xcode项目时,它可以正常运行。 如果我退出模拟器和Xcode,然后再次打开Xcode并运行它 - (把这看作是另一天开始工作在该项目上)- 当我尝试滚动任何uitableview时,模拟器会重新绘制所有单元格(似乎没有正确地出列和重复使用)。 我知道这是因为当绘制单元格时,我正在运行NSLog。
如果我重置模拟器中的设置,然后再次运行它 - 它会平稳滚动。 我已经尝试完全卸载Xcode并重新安装它,但无济于事。 我正在使用Xcode 4.3.2。
现在,人们可能会认为这是代码的问题,但是听到这个: 我在办公室还有一台(全新的iMac)。我在dropbox上拥有这个Xcode项目,因此两个副本都是相同的(办公室和家庭)。在办公室,我没有这种奇怪的滚动问题...一切正常。
这两台Mac之间唯一的区别(都是27英寸,有16GB RAM)是硬盘 - 办公室的Mac具有1TB 7200 RPM驱动器。我家里的Mac有一个来自Apple的SSD。
我不知道会导致这个问题...真的很令人沮丧。 我不反对清除我的家用Mac并重新开始,但那有点极端。
想法?我没有发布代码,因为在两台不同的计算机上运行相同的代码会产生不同的结果,因此代码似乎不是问题所在。
使用代码更新和视频http://ge.tt/4ZuZ9mI/v/0
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"dateCell";
FEDateCell *cell = (FEDateCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"FEDateCell" owner:self options:nil];
cell = dateCell;
[cell setClipsToBounds:YES];
}
PFObject *eventObj = [self.itemsList objectAtIndex:indexPath.row];
//Get cell date from row
NSDate *currentDate = [eventObj objectForKey:@"startDate"];
cell.cellDate = currentDate;
cell.eventsArray = [NSArray arrayWithObject:eventObj];
[dateFormatter setDateFormat:@"dd"];
cell.dayNumber.text = [dateFormatter stringFromDate:cell.cellDate];
[dateFormatter setDateFormat:@"EEE"];
cell.dayName.text = [dateFormatter stringFromDate:cell.cellDate];
[cell updateCellData];
return cell;
}
cellForRowAtIndexPath:
”代码,这将显示您在出列和单元格创建方面所做的工作。 - Michael Dautermann