取消选择表视图中的行不会设置动画

时间:2011-07-07 08:18:01

标签: iphone cocoa-touch uitableview uikit core-animation

我有一个管理表视图的视图控制器。我的理解是,如果我按下另一个视图控制器然后弹回到表视图,将自动取消选择表格单元格。

但是,在同一个类中(我使用了几次),当取消选择单元格但没有动画时,会有一个类的实例(它只会变为蓝色,然后在没有动画的情况下恢复正常)。为什么会这样?我有这个类的一些实例,但它只发生在其中一个。可能导致这种情况的原因是什么?

3 个答案:

答案 0 :(得分:2)

根据我的经验,如果您按下/弹出一个视图控制器(至少在使用导航控制器时没有),则不会自动取消选择单元格,除非您添加一些代码,请取消选择它! 如果您在viewWill / DidAppear中执行[tableView reloadData](或在这些方法中启动的进程中),它也可能会自动取消选择。

您是否尝试在viewDidAppear中添加类似内容?

NSIndexPath *indexPath = [tableView indexPathForSelectedRow];
if (indexPath != nil) {
    [tableView deselectRowAtIndexPath:indexPath animated:YES]
}

答案 1 :(得分:2)

    NSIndexPath *indexPath = [tableView indexPathForSelectedRow];
if (indexPath != nil) {
    [tableView deselectRowAtIndexPath:indexPath animated:YES]
}
  1. 这个你必须用didselectRowAtIndexPath方法写

答案 2 :(得分:0)

您可以重新加载Tableview。

在你的viewWillAppear

[yourTableView reloadData];

或者如果你不想打扰你的数据源,试试这个

NSArray *array = [yourTableView visibleCells];
for(UITableViewCell *cell in array)
{
    cell.selected = NO;
}