滚动过去顶部后,自定义UITableViewCell消失

时间:2011-02-18 20:42:46

标签: iphone uitableview

我有一个从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

2 个答案:

答案 0 :(得分:1)

我认为你不应该这样做

[TimeEntry release];

在最后一行的旁边。您没有在该方法中分配它,只是从委托中提取了一个引用。此时保留计数可能为零。当iOS开始释放内存时,TimeEntry将被释放。

答案 1 :(得分:0)

问题结果是IB中的视图层次结构。即使我在单元格中放置了一个视图,然后将UILabel拖到视图上,它们也最终与视图处于同一级别。在视图下移动UILabels后,它似乎正在工作。