首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >UITableView删除和重新加载单元格

UITableView删除和重新加载单元格
EN

Stack Overflow用户
提问于 2012-09-03 00:22:06
回答 1查看 10.9K关注 0票数 5

我在UITableView中删除了一些行,如下所示:

代码语言:javascript
复制
[tableView deleteRowsAtIndexPaths:toDelete withRowAnimation:UITableViewRowAnimationAutomatic];

这为删除操作添加了一个不错的动画。

但是,在删除之后,我需要更新所有当前可见的行。呼叫

代码语言:javascript
复制
[tableView reloadData];

就在第一次调用之后,但漂亮的动画效果消失了。有什么更好的方法可以做到这一点呢?例如,动画删除操作,并更新所有当前可见的行?谢谢!

我需要这样做的原因是因为每个单元格都包含一个“复选框”。我的视图控制器是checkbox的委托,每个checkbox都有一个与之关联的NSIndexPath。当复选框被切换时,委托被调用,告诉它我们为x索引路径切换了。现在,如果删除了一些行,则需要更新索引路径。这就是为什么我需要重新加载所有内容,以便每个复选框都知道它属于哪里。

EN

回答 1

Stack Overflow用户

发布于 2013-02-17 10:34:12

无论经过多长时间,ctrahey的动画块对我都不起作用。研究了UITableView的删除、插入和重载机制。我在Github维护我的项目来解决这个问题。

https://github.com/VansonLeung/VanTableController

它包含了一个工作单元测试。通常,为了动画UITableView的单元格动画,我们必须这样做:

代码语言:javascript
复制
[tableView_ beginUpdates];
[tableView_ deleteRowsAtIndexPaths: indexPathDelete withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView_ insertRowsAtIndexPaths: indexPathInsert withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView_ reloadRowsAtIndexPaths: indexPathReload withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView_ endUpdates];

我们必须确定删除行、插入行和重新加载行的indexPath数组,这是一项非常繁琐的工作!我的项目工作基本上是生成这些indexPaths的包装器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12237649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档