重新sorting控制不显示在表视图上

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

点击编辑button时,我希望行是可重新sorting和可删除的。

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

cell.showsReorderControl = YES; 

tableView:canMoveRowAtIndexPath:方法返回YES。

但重sorting控制不显示在行中,我错过了什么?

从UITableViewCell showsReorderControl文档 :

要使重sorting控件出现,不仅要设置此属性,还要实现UITableViewDataSource方法tableView:moveRowAtIndexPath:toIndexPath :. 另外,如果数据源实现了tableView:canMoveRowAtIndexPath:返回NO,则重sorting控件不会出现在指定的行中。

UITableView也必须处于编辑模式,它不是默认的。 通常你使用一个button或其他控件来切换编辑模式。 要将表视图置于编辑模式(我们假设你有一个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]; 

尝试这个 。 。 你必须实现这两种方法来获得编辑模式下的重新sorting控制

 - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { return YES; } - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { }