2013-07-10 2 views
1

У меня есть UIViewController с UITableView, который может иметь до 7 ячеек. Я установил опцию cell.showsReorderControl = YES;, и пользователь может изменить порядок ячеек. При создании ячеек, я также включил cell.tag.iOS: Найти значение cell.tag после того, как пользователь переупорядочивает ячейки

После того, как пользователь переупорядочивает ячейки, я хотел бы знать расположение ячеек в таблице. Для этого я решил установить теги (не уверен, что это правильный подход).

Так что мои вопросы находятся в prepareForSegue, после перестановки ячеек пользователем, я хотел бы знать, какое значение тега для каждой ячейки?

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath 
{ 
    [arrayTag replaceObjectAtIndex:sourceIndexPath.row withObject:[NSString stringWithFormat:@"%i",proposedDestinationIndexPath.row]]; 
    [arrayTag replaceObjectAtIndex:proposedDestinationIndexPath.row withObject:[NSString stringWithFormat:@"%i",sourceIndexPath.row]]; 

    return proposedDestinationIndexPath; 
} 

Для проверки я сделал NSLog

- (IBAction)doneButton:(id)sender 
{ 
    NSLog (@"Number of Objects in Array %i", arrayTag.count); 

    for (NSString *obj in arrayTag){ 
     NSLog(@"From ArrayTag obj: %@", obj); 
    } 
} 

Вход без подвижных элементов:

2013-07-10 17:50:47.291 MyApp[1634:c07] Number of Objects in Array 7 
2013-07-10 17:50:47.292 MyApp[1634:c07] From ArrayTag obj: 0 
2013-07-10 17:50:47.292 MyApp[1634:c07] From ArrayTag obj: 1 
2013-07-10 17:50:47.292 MyApp[1634:c07] From ArrayTag obj: 2 
2013-07-10 17:50:47.292 MyApp[1634:c07] From ArrayTag obj: 3 
2013-07-10 17:50:47.293 MyApp[1634:c07] From ArrayTag obj: 4 
2013-07-10 17:50:47.293 MyApp[1634:c07] From ArrayTag obj: 5 
2013-07-10 17:50:47.293 MyApp[1634:c07] From ArrayTag obj: 6 

Вход Перебравшись/шаркающие клетки:

2013-07-10 17:51:55.329 MyApp[1634:c07] Number of Objects in Array 7 
2013-07-10 17:51:55.330 MyApp[1634:c07] From ArrayTag obj: 4 
2013-07-10 17:51:55.330 MyApp[1634:c07] From ArrayTag obj: 5 
2013-07-10 17:51:55.330 MyApp[1634:c07] From ArrayTag obj: 5 
2013-07-10 17:51:55.330 MyApp[1634:c07] From ArrayTag obj: 5 
2013-07-10 17:51:55.331 MyApp[1634:c07] From ArrayTag obj: 6 
2013-07-10 17:51:55.331 MyApp[1634:c07] From ArrayTag obj: 6 
2013-07-10 17:51:55.331 MyApp[1634:c07] From ArrayTag obj: 4 
+0

Я не уверен, в чем вопрос, что вы пытались получить? – micantox

+0

Я ничего не пробовал. Я не уверен, как получить значение тега каждой ячейки после того, как пользователь перетасует ячейки. – user1107173

ответ

1

На самом деле добавить один NSMutableArray в .h файл.

Сейчас в viewDidLoad методе intialize это

arrayTag = [NSMutableArray array]; 

Хотя adding cell's tag добавить его в array

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    ......... 
    ......... 
    ......... 

    cell.tag = indexPath.row; 
    NSString *strCellTag = [NSString stringWithFormat:@"%d",cell.tag]; 
    if(![arrayTag containsObject:strCellTag]) 
    { 
     [arrayTag addObject:strCellTag]; 
    } 
    return cell; 
} 

В настоящее время в этих delegate метод replace тег

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath 
{ 
    [arrayTag replaceObjectAtIndex:sourceIndexPath.row withObject:[NSString stringWithFormat:@"%d",proposedDestinationIndexPath.row]; 
    [arrayTag replaceObjectAtIndex:proposedDestinationIndexPath.row withObject:[NSString stringWithFormat:@"%d",sourceIndexPath.row]; 
} 

EDIT: У вас есть заказ ячеек со своим тегом .........

+0

Спасибо, принц. Это выглядит великолепно. Я попробую это через несколько часов и пометьте его как правильно, если это сработает. Благодаря! – user1107173

+0

Я обновил код выше. Журнал ПОСЛЕ перемещения/перетасовки ячеек, я не получаю уникальных значений. Если вы посмотрите на журнал выше, вы заметите, что, когда я не перемещаю какие-либо ячейки, он показывает ячейки в порядке с уникальными значениями. Однако, после перетасовки/перемещения ячеек, умножаются ячейки с одинаковыми значениями? Благодарю. – user1107173

Смежные вопросы

 Смежные вопросы