showsReorderControl有什么意义?

Rud*_*vič 7 cocoa-touch uitableview ios

我有一个UITableView实例并实现了:

tableView:canEditRowAtIndexPath:
tableView:editingStyleForRowAtIndexPath:
tableView:shouldIndentWhileEditingRowAtIndexPath:
tableView:canMoveRowAtIndexPath:
tableView:moveRowAtIndexPath:toIndexPath:
Run Code Online (Sandbox Code Playgroud)

之后,我可以通过重新排序控件查看所有细胞.

Apple的标题说:

@property(nonatomic) BOOL showsReorderControl; // default is NO
Run Code Online (Sandbox Code Playgroud)

如果默认值是NO为什么我看到重新排序控件?

更新: 我还在tableView:cellForRowAtIndexPath:创建单元格后立即检查了属性的值:

(lldb) p [c showsReorderControl]
(BOOL) $1 = NO
Run Code Online (Sandbox Code Playgroud)

J S*_*iro 10

当您从中返回YES时tableView:canMoveRowAtIndexPath:,它与设置showsReorderControl为YES相同.这些只是启用重新排序控制的两种不同方法.

事实上,还有第三种方式 - 让我们永远不要抱怨我们没有选择权!;)来自以下文件tableView:canMoveRowAtIndexPath::

此方法允许委托指定不显示指定行的重新排序控件.默认情况下,如果数据源实现了tableView:moveRowAtIndexPath:toIndexPath:方法,则会显示重新排序控件.