如何在自定义UITableViewCell中重新排序行

时间:2014-01-11 05:18:41

标签: objective-c uitableview

到目前为止,我已经使用图标重新排序行定制了我的UITableViewCell。

enter image description here

我希望我的单元格可以在长按重新排序图标然后移动它时重新排序。 下图是我的预期。

enter image description here

我已经阅读了很多文件,他们只提供长按单元格并移动它但我不想要它,因为长按单元格我有另一个手势是重命名它;而且我也不想在OS中使用UITableView默认的编辑/完成;所以我决定放置重新排序图标,但我做不到,因为我是目标c的新手。

有人可以在这里提供示例代码吗?

感谢阅读。

1 个答案:

答案 0 :(得分:1)

覆盖UITableViewDataSource的两个方法

要重新排序,您首先需要将表格置于编辑模式。您可以从viewDidLoad或IBAction方法执行此操作。

-(void) viewDidLoad{
     [super viewDidLoad];
     self.myTableView.editing = YES;
}

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{

  return YES;
}


- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath{
   //Manipulate your data array.
}

默认编辑样式为UITableViewCellEditingStyleDelete。因此,如果您不覆盖以下方法,它将同时显示重新排列以及删除图标。

-(UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
    return UITableViewCellEditingStyleNone;
}

因为,你的细胞长手势导致细胞重新排序的长姿势问题。您可以向单元格添加UIView。在此UIView中添加所有元素。现在,将UILongPress手势附加到此UIView(而不是单元格。)。