自定义UITableViewCell滚动过去顶部后消失
问题描述:
我有一个从nib文件加载的自定义UITableViewCell。一切正常,直到我向下滚动过去最后一个单元格,这样当我放开时,表格视图必须反弹回来。自定义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拍摄2.46.42 2011-02-18 PM.png
[1]:在http://dl.nvthost.com.s3.amazonaws.com/Screen拍摄2.46.42 2011-02-18 PM.png
答
我不我认为你应该做的
[TimeEntry release];
那里的最后一行。您没有在该方法中分配它,只是从委托中提取参考。在这一点上,保留数可能为零。当iOS开始释放TimeEntry将被释放的内存时。
答
问题原来是IB中的视图层次结构。尽管我在单元格中放置了视图,然后将UILabels拖到视图上,但它们与视图的高度相同。在将UILabel移到视图之后,它似乎正在工作。
这是作为调试过程的一部分放在那里。我删除它,仍然有同样的问题。 – JWright 2011-02-18 21:01:28