【发布时间】:2009-12-10 17:32:05
【问题描述】:
我有一个包含几行文本的单元格,在选定/突出显示时会改变颜色。问题在于,当新的 viewController 被推送时,会出现取消选择动画,这会在视觉上分散注意力,因为文本会突然恢复到未选择状态。我已将 deselectRowAtIndexPath 语句移到推送新视图控制器的行之后,但这没有效果。
如何防止用户看到单元格取消选择(不实现计时器)?任何帮助将不胜感激。
【问题讨论】:
标签: iphone cocoa-touch
我有一个包含几行文本的单元格,在选定/突出显示时会改变颜色。问题在于,当新的 viewController 被推送时,会出现取消选择动画,这会在视觉上分散注意力,因为文本会突然恢复到未选择状态。我已将 deselectRowAtIndexPath 语句移到推送新视图控制器的行之后,但这没有效果。
如何防止用户看到单元格取消选择(不实现计时器)?任何帮助将不胜感激。
【问题讨论】:
标签: iphone cocoa-touch
如果您使用的是UITableViewController,则无需致电deselectRowAtIndexPath:。当您的表格视图再次可见时,这将自动为您完成。
如果您没有使用UITableViewController,因为您有一个更复杂的接口,您需要从viewWillAppear:animated: 方法手动调用deselectRowAtIndexPath:。
【讨论】:
[super viewWillAppear]?如果您阅读 UITableViewController 的概述部分,我发现它确实讨论了 UITableViewController 基类提供的各种行为。
我认为用于表格视图和推送新 VC 的一般范例是您在 viewWillAppear:animated 方法中取消选择表格行。然后在弹出 VC 时,他们会看到哪一行已用于导航到该 VC。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.myTableView deselectRowAtIndexPath:[myTableView indexPathForSelectedRow] animated:YES];
}
所以从你的 didSelectRowAtIndexPath 方法中删除 deselectRow。
【讨论】: