无法使表重新排序工作

时间:2012-06-07 15:18:04

标签: objective-c ios uitableview

来自UITableViewCell showsReorderControl docs:

For the reordering control to appear, you must not only set this property but implement the UITableViewDataSource method tableView:moveRowAtIndexPath:toIndexPath:. In addition, if the data source implements tableView:canMoveRowAtIndexPath: to return NO, the reordering control does not appear in that designated row.

我的tableviewController中有两者:

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
    NSLog(@"move from:%d to:%d", fromIndexPath.row, toIndexPath.row);
   //just for test
}

我的单元格属性包括重新排序控件:

enter image description here

然而我看不到重新订购控制,我错过了什么?

2 个答案:

答案 0 :(得分:2)

您是否已通过

将UITableView置于编辑模式
[tableView setEditing:YES animated:YES];

顺便说一下,你发布的第一种方法是不必要的,因为这是默认行为。

答案 1 :(得分:2)

我认为您需要实际进入该表的编辑模式。当您的视图出现时,可以在代码中尝试它,也可以创建一个可以执行此操作的按钮。

[tableView setEditing:YES animated:YES];