如何在不使用reload的情况下隐藏UITableViewCell中的重新排序控件?

4

在我的应用中,当用户触摸表格单元格时,该单元格将被禁用并且重新排序控件将消失。如果他们再次触摸它,该单元格将被启用并且重新排序控件将重新出现。目前我实现这个功能的方式是通过调用reloadRowsAtIndexPaths:withRowAnimation:,但这很慢。如果我只改变showsReorderControl属性,什么也不会发生。我尝试使用setEditing:animated:,但它不能保证一直有效。有什么好的建议吗?谢谢!

2个回答

11
好的,我找到了一个解决方案。除了使用-tableView:canMoveRowAtIndexPath:之外,我还需要使用-tableView:canEditRowAtIndexPath:。当需要显示或隐藏重新排序控件时,我使用showsReorderControl和setEditing:animated:来使其正常工作。

0

重新排序控件应该只在表格处于编辑模式时可见。要为特定行显示它,您需要在tableView的数据源中实现-tableView:canMoveRowAtIndexPath:方法。没有理由调用-reloadData方法来显示此控件。


我之前使用了-tableView:canMoveRowAtIndexPath:,但是我漏掉了-tableView:canEditRowAtIndexPath:。抱歉,我应该更清楚地表达。 - mathew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接