Проблема с перестановкой массива в ячейке UITableView

У меня есть UITableView, в который пользователь может добавлять и переставлять объекты... когда пользователь перемещает элемент, я пытаюсь перестроить массив данных, чтобы соответствовать тому, что пользователь изменил порядок своих ячеек на... я, очевидно, не делаю это правильно... вот мой код

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
    NSMutableOrderedSet *temp = [[NSMutableOrderedSet alloc]init];
    if(fromIndexPath.row == toIndexPath.row){
        temp = _dataArray;
    }
    int min,max;
    if(fromIndexPath.row > toIndexPath.row){min = toIndexPath.row;max = fromIndexPath.row;}
    if(fromIndexPath.row < toIndexPath.row){max = toIndexPath.row;min = fromIndexPath.row;}
    for(int i = 0; i < _dataArray.count; i++)
    {
        NSLog(@"%i",i);
        if(i == toIndexPath.row)
        {
            [temp insertObject:_dataArray[fromIndexPath.row] atIndex:i];
        }
        else
        {
            if(i >= min && i <= max)
            {
                if(fromIndexPath.row > toIndexPath.row)
                {
                    [temp insertObject:_dataArray[i] atIndex:i+1];
                }
                else if(fromIndexPath.row < toIndexPath.row)
                {
                    [temp insertObject:_dataArray[i] atIndex:i-1];
                }
            }
            else
            {
                [temp insertObject:_dataArray[i] atIndex:i];
            }
        }
    }
    NSLog(@"================ Cell Array Testing ================");
    for(int i = 0; i < temp.count; i++)
    {
        NSLog(@"Cell: %@",temp[i]);
    }
    _dataArray = temp;
}

0 ответов

Другие вопросы по тегам