表视图上不显示重新排序控件

Chi*_*ron 14 iphone cocoa-touch core-data uitableview ios

我创建了一个基于导航的应用程序模板的iOS应用程序,该应用程序由Core Data框架支持.

单击"编辑"按钮时,我希望行可以重新排序并且可以删除.

在构建单元格时,我添加了这一行:

cell.showsReorderControl = YES;
Run Code Online (Sandbox Code Playgroud)

tableView:canMoveRowAtIndexPath:方法返回YES.

但重新排序控件没有显示在行中,我错过了什么?

Ben*_*hen 29

来自UITableViewCell showsReorderControl文档:

要显示重新排序控件,您不仅必须设置此属性,还必须实现UITableViewDataSource方法tableView:moveRowAtIndexPath:toIndexPath:.此外,如果数据源实现tableView:canMoveRowAtIndexPath:以返回NO,则重新排序控件不会出现在该指定行中.


Jas*_*oco 11

UITableView也必须处于编辑模式,默认情况下它不在.通常您使用按钮或其他控件在编辑模式之间切换.要将表视图置于编辑模式(我们假设您有一个UITableViewController,并且您的tableView属性已正确设置,如果没有,请根据您的环境进行调整):

// This line somewhere inside the UITableViewController will
// animate in the various editing controls and make sure they
// show up on your table.
[[self tableView] setEditing:YES animated:YES];
Run Code Online (Sandbox Code Playgroud)