如何知道[UITableView setEditing:YES animated:YES]何时完成?如何判断UITableView动画何时结束?
我不想给出任何上下文,因为我想避免任何人给我解决方法,这些我不感兴趣。
我想要的是调用上述,然后在动画完成时调用一个单独的函数。
我被编辑后给出的上下文和一些解决方法。 最初我setEditing并立即重新加载表数据。
[tableView setEditing:YES animated:YES];
[tableView reloadData];
问题是表在动画开始之前重新加载,所以动画从未出现。
这里有一些不同的解决方法:
[tableView setEditing:YES animated:YES];
[self performSelector:@selector(ReloadTable) withObject:nil afterDelay:1.0];
这工作,但如果我得到的延迟不正确,它会看起来很糟糕。所以我需要知道延迟是什么,我可以弄清楚,但我们不敢保证延迟总是一样的。
isEditing = YES;
[tableView reloadData];
[tableView setEditing:YES animated:YES];
这可以工作,但表格的行为有所不同,取决于我们是否处于编辑模式。所以我必须使用我自己的isEditing变量而不是标准的UITableView.editing。我宁愿不必创建一个新的布尔isEditing变量。
[tableView setEditing:YES animated:YES];
[tableView insertRowsAtIndexPaths:path withRowAnimation:UITableViewRowAnimationTop];
这几乎是效果很好,但在编辑模式下的第一行应该有UITableViewCellEditingStyleInsert,而其他行获得UITableViewCellEditingStyleDelete。通过上面的代码,在添加行之前,编辑样式会被设置。因此第二行以UITableViewCellEditingStyleInsert结束。
+1这工作*完美*。 – Isaac
我已经尝试了很多关于这个问题的其他线程的建议,这是第一个工作的! – Marty
真是个好主意! – Swindler