我有一个 UITableView,里面有几个 UITableViewCells。我想长按一个单元格以开始移动它并按住它并拖动以移动它。但我不知道怎么做。
我在表格视图上添加了一个长按手势,当用户长按时,将表格视图的编辑设置为是:
UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleTableViewLongPress:)];
[_tableView addGestureRecognizer:longPressRecognizer];
- (void)handleTableViewLongPress:(UILongPressGestureRecognizer *)gesture
{
if (gesture.state != UIGestureRecognizerStateBegan)
return;
[_tableView setEditing:YES];
}
并且 tableview 可以使用两种方法移动单元格:
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
//update datasource
}
但是使用这些代码,用户必须使用两次触摸来移动单元格:一个是将 tableview 设置为编辑状态,另一个是移动单元格。我想要的是允许用户使用一键来做到这一点。
有什么建议么?谢谢!