UITableView单元格无法快速更新
我有一个自定义单元格的UITableView单元格无法快速更新,uitableview,pushviewcontroller,Uitableview,Pushviewcontroller,我有一个自定义单元格的UITableView。一个单元格导航到另一个UINavigationController。此单元格包含一个颜色标签。从新的UIViewController返回表格视图时,颜色标签显示滞后 为了更好地理解,我制作了一个视频: 为什么会有这种奇怪的行为?我以为tableview存储了它的状态 我已经实现了tableView:cellForRowAtIndexPath:,它从NIB文件中对单元格进行除名,并实现了tableView:willDisplayCell:forRow
UITableView
。一个单元格导航到另一个UINavigationController
。此单元格包含一个颜色标签。从新的UIViewController
返回表格视图时,颜色标签显示滞后
为了更好地理解,我制作了一个视频:
为什么会有这种奇怪的行为?我以为tableview存储了它的状态
我已经实现了tableView:cellForRowAtIndexPath:
,它从NIB文件中对单元格进行除名,并实现了tableView:willDisplayCell:forRowAtIndexPath:
它填充红色标签。另外,我为过渡实施了以下措施:
-(void) tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.section == 1) {
if(indexPath.row == 0) {
UIViewController* ctrl = [[UIViewController alloc] init];
ctrl.preferredContentSize = CGSizeMake(240, 200);
[self.navigationController pushViewController: ctrl animated:YES];
}
}
}
“滞后”是因为单元格处于选定状态时发生的变化。如果你仔细看电影的第二个1.5秒,你会发现在我们离开表格视图之前,红色矩形已经消失了
因此,事件的顺序是:
- 修复红色矩形,使其即使在选中或高亮显示时也是红色矩形。我不能确切地告诉你怎么做,因为你隐瞒了事实,没有透露这个红色矩形是什么,它是如何配置的,等等
- 或者,将表视图控制器的
设置为YES。这将导致取消选择更快地进行。然而,这是懒人的方式;您最好弄清楚为什么选中/高亮显示时红色矩形会消失clearselectiononviewwillappear
cell.selectionStyle = UITableViewCellSelectionStyleNone;
好的,但是你应该弄清楚为什么矩形在被选中/高亮显示时会改变外观。我认为真正的原因是你在使用标签。这不是制作红色矩形的正确方法。(就这样,我保证我不会再为这件事唠叨你了!)