ios - tableView reloadData 和 deselectRowAtIndexPath

标签 ios objective-c uitableview

当返回到 -viewWillAppear:animated 中的 TableView 时,我使用以下代码取消选择选定的 TableView 单元格。

[self.tableView deselectRowAtIndexPath:self.tableView.indexPathForSelectedRow animated:YES];

在这种情况下,我还需要重新加载表格 View 的数据,但是当您这样做时,它会清除所选单元格的选定状态,因此您看不到任何淡入淡出动画。

有没有办法重新加载表格数据并保留选定状态以创建取消选择动画?

最佳答案

经过多次尝试,我发现了一些可行的方法。您需要将取消选择设置为在“延迟”(0 秒)后发生,以确保它发生在下一个绘制周期并正确设置动画。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    NSIndexPath *indexPath = self.tableView.indexPathForSelectedRow;
    [self.tableView reloadData];
    [self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

    [self performSelector:@selector(deselectRow) withObject:nil afterDelay:0];

}

- (void)deselectRow
{
    [self.tableView deselectRowAtIndexPath:self.tableView.indexPathForSelectedRow animated:YES];
}

关于ios - tableView reloadData 和 deselectRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711850/

相关文章:

ios - 将 iOS 应用程序提交到应用程序商店无效的代码签名权利

iphone - 如何判断正在运行的场景是什么样的类/场景?

ios - NSUserDefaults 为 valueForKey 返回 null

ios - tableView reloadData 在文档目录中删除后不重新加载数据

ios - [ TableView 重新加载数据];在导航回根 Controller 之前不会重新加载

ios - defaultNavigationOptions 中的默认背景颜色

ios - 使用 krpano 创建的 Html 在 iOS 中本地运行的问题

iOS 多个弹跳球

IOS - 在 Cocos2d 中使用 CCCallBlock,小行星游戏

iOS swift imageView无法在TableViewCell中隐藏