我的UITableView
有3个部分。只有第二部分中的单元格可以移动:
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
BOOL canMove = NO;
if (indexPath.section == 1) {
canMove = YES;
}
return canMove;
}
但是,第二部分中的单元格(B
)(最初包含A``B``C
个单元格)可以移动到第一部分(最初只包含T
单元格):
如何确保在其自己的部分中移动?
答案 0 :(得分:9)
我认为这将解决您的问题
- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath
{
if( sourceIndexPath.section != proposedDestinationIndexPath.section )
return sourceIndexPath;
else
return proposedDestinationIndexPath;
}
来自Apple documentation
此方法允许自定义特定的目标行 行,因为它在表视图中上下移动。作为拖动的行 悬停在另一行上,目标行向下滑动到 在视觉上为搬迁腾出空间;这是确定的位置 by proposedDestinationIndexPath。