我有一个UITableView实例并实现:
tableView:canEditRowAtIndexPath: tableView:editingStyleForRowAtIndexPath: tableView:shouldIndentWhileEditingRowAtIndexPath: tableView:canMoveRowAtIndexPath: tableView:moveRowAtIndexPath:toIndexPath:
之后,我可以通过重新排序控件查看所有细胞.
Apple的标题说:
@property(nonatomic) BOOL showsReorderControl; // default is NO
如果默认值为NO,为什么我看到重新排序控件?
更新:
我还在tableView:cellForRowAtIndexPath中检查了属性的值:在创建单元格之后:
(lldb) p [c showsReorderControl] (BOOL) $1 = NO
解决方法
当您从tableView:canMoveRowAtIndexPath:返回YES时,它与将showsReorderControl设置为YES完全相同.这些只是启用重新排序控制的两种不同方法.
事实上,还有第三种方式 – 让我们永远不要抱怨我们没有选择权! ;)从tableView的文档:canMoveRowAtIndexPath ::
This method allows the delegate to specify that the reordering control for a the specified row not be shown. By default,the reordering control is shown if the data source implements the tableView:moveRowAtIndexPath:toIndexPath: method.