我创建了一个基于导航的应用程序模板的iOS应用程序,该应用程序由Core Data框架支持。重新排序控制不显示在表格视图
当点击编辑按钮时,我希望行是可重新排序和可删除的。
当构造单元,I加入这一行:
cell.showsReorderControl = YES;
tableView:canMoveRowAtIndexPath:
和方法返回YES。
但重排序控制不显示在行中,我错过了什么?
我创建了一个基于导航的应用程序模板的iOS应用程序,该应用程序由Core Data框架支持。重新排序控制不显示在表格视图
当点击编辑按钮时,我希望行是可重新排序和可删除的。
当构造单元,I加入这一行:
cell.showsReorderControl = YES;
tableView:canMoveRowAtIndexPath:
和方法返回YES。
但重排序控制不显示在行中,我错过了什么?
从UITableViewCell showsReorderControl docs:
对于要重新排序控件出现,您不仅必须设置此 属性,还需要实现UITableViewDataSource方法 tableView:moveRowAtIndexPath:toIndexPath :.另外,如果数据源实现了tableView:canMoveRowAtIndexPath:返回NO,那么 重新排序控件不会出现在该指定行中。
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];
这是一个假想的屏幕截图,当按下Edit按钮(位于导航栏左侧)时会发生什么?单击编辑时是否可以合并删除和排序操作? http://dl.dropbox.com/u/3630641/4-%20Todolist%20Main%20-%20Edit.jpg – Chiron 2011-01-22 18:11:50
试试这个。 。 。您必须实现这两种方法才能在编辑模式下获得重新排序控制
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
}
我不知道tableView:moveRowAtIndexPath:toIndexPath:必须被执行才能显示移动附件。这解决了我的问题!谢谢! – 2011-06-14 03:44:03