UITableView中的错误deleteSections:withRowAnimation:?

问题描述

| 我在使用此UITableView方法时遇到问题:
- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation
首先,文档说:   动画:       是的,以动画方式删除节,否则为否。 但是,参数动画实际上是枚举ѭ1type,而不是
BOOL
!?。 那么如何禁用动画呢?我尝试过
NO
UITableViewRowAnimationNone
。没用。删除部分始终是动画。 我知道我可以改用
[tableView reloadData]
。那会解决我的问题。我只是好奇这是否是已知问题,是否可以使用此tableview方法禁用动画。 谢谢!     

解决方法

        关于文档中的“是/否”,而参数的类型为UITableViewRowAnimation,我想这是API的旧版本的其余部分,其中以前的参数是BOOL。无论如何,文档确实是错误的。 为此,请随时向Apple发送反馈(使用文档底部的“很好,但是…\”链接)     ,        有点hack,但这摆脱了插入动画:
[UIView setAnimationsEnabled:NO];
[self.tableView insertRowsAtIndexPaths:insertedIndexPaths withRowAnimation:UITableViewRowAnimationNone];
[UIView setAnimationsEnabled:YES];
    ,        好吧,显然该文档确实是错误的。您传递的参数说明了如何为删除设置动画。如果您通过
UITableViewRowAnimationNone
,更新将立即进行,而不会显示动画。但是,当您在要删除的部分下面有一个部分时,它将以动画方式向上移动。 您应该尝试利用动画。这样,用户可以看到发生了什么。     ,        我相信您需要将
deleteSections
调用嵌入到
beginUpdates
块中:
[tableView beginUpdates];
[tableView deleteSections:... withRowAnimation:... ];
[tableView endUpdates];
该文档似乎还是这样说的。我还没有用ѭ11来测试。