我有一个从nib文件加载的自定义UITableViewCell。一切正常,直到我向下滚过最后一个单元格,以便在我放手时桌面视图必须反弹。
然后,列表顶部的单元格为空白,并保持空白,直到我手动刷新表格视图。
问题图片:[iPhone屏幕截图] [1]
这是我的行代码单元格:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"TimeEntryCellIdentifier";
TimeEntryCell *cell = (TimeEntryCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TimeEntryCell" owner:self options:nil];
for (id oneObject in nib) {
if ([oneObject isKindOfClass:[TimeEntryCell class]]) {
cell = (TimeEntryCell *) oneObject;
}
}
}
TimeEntry *aTimeEntry = [appDelegate.timeEntries objectAtIndex:indexPath.row];
cell.clientName.text = aTimeEntry.ClientName;
cell.category.text = aTimeEntry.CategoryName;
cell.hours.text = [NSString stringWithFormat:@"%@", aTimeEntry.Hours];
[TimeEntry release];
return cell;
}
有什么想法吗?
[1]:http://dl.nvthost.com.s3.amazonaws.com/Screen拍摄2011-02-18 at 2.46.42 PM.png
[1]:http://dl.nvthost.com.s3.amazonaws.com/Screen拍摄2011-02-18 at 2.46.42 PM.png
答案 0 :(得分:1)
我认为你不应该这样做
[TimeEntry release];
在最后一行的旁边。您没有在该方法中分配它,只是从委托中提取了一个引用。此时保留计数可能为零。当iOS开始释放内存时,TimeEntry将被释放。
答案 1 :(得分:0)
问题结果是IB中的视图层次结构。即使我在单元格中放置了一个视图,然后将UILabel拖到视图上,它们也最终与视图处于同一级别。在视图下移动UILabels后,它似乎正在工作。