这是一个视频,其中记录了单元格中的索引路径以获取索引路径中的行:(请参阅下面的新链接)
所以,另一个奇怪的......在我家的 iMac(全新)上,当我第一次在模拟器中运行 Xcode 项目时,它运行良好。如果我然后退出模拟器和 Xcode,然后再次打开 Xcode 并运行它 - (认为这是改天再次开始在项目上工作) - 当我尝试滚动任何 uitableview 时,模拟器会重绘所有单元格(它似乎没有正确地出列和重用)。我知道这一点,因为在绘制单元格时我正在运行 NSLog。
如果我在模拟器中重置设置然后再次运行它 - 它会平滑滚动。我已经尝试完全卸载 Xcode 并重新安装它无济于事。我正在使用 Xcode 4.3.2。
现在,有人可能会认为这是代码的问题,但是,明白这一点:我在办公室有另一台(全新的 iMac)。我在 Dropbox 上有这个 Xcode 项目,所以两个副本是相同的(办公室和家庭)。在办公室里,我没有这个奇怪的滚动问题……一切正常。
两台 mac(均为 27 英寸,内存为 16gb)之间的唯一区别是硬盘 - 办公室 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;
}