2015-06-25 4 views
0

Я хочу удалить конкретную строку, пока я ее перетаскиваю. Вот часть кода.Как удалить строку в UITableView в Xcode 6.2?

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    [tableData removeObjectAtIndex:indexPath.row]; 
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationFade]; 
} 
+0

Пожалуйста, измените вопрос и сделать код быть отформатирован в виде кода либо путем добавления четыре пробела перед каждой строкой или с помощью кнопки {} –

+0

перезагрузки таблицы после удаления ячейки –

+0

Как перезагрузить, что – Panky

ответ

0
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
return YES; 
} 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 

    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [tableData removeObjectAtIndex:indexPath.row]; 
     [tableView reloadData]; 
    } 

} 
+0

я пробовал, но Это не работает. – Panky

+0

Что происходит, можно определить вкратце? –

+0

der не является ошибкой в ​​коде, но все не работает. – Panky

0

установить делегируют ли?

self.tableView.delegate = self; 

с соответствующими How do I get the delete button to show when swiping on a UITableViewCell?

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
    // Return YES if you want the specified item to be editable. 
    return YES; 
} 

// Override to support editing the table view. 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     // delete from model 
     // [self.tableView reloadData] 
    }  
} 

Вы можете поставить на точках останова в код для вызова функций проверки

0
ответа

yagnesh dobariya является рабочим раствором, и я хотел бы предложить модификацию, делает его более эффективным.

Поскольку вы удаляете только одну строку за раз, вы можете продолжать использовать -deleteRowsAtIndexPaths:withRowAnimation:, как в вашем исходном коде. Просто сэндвич между -beginUpdates и -endUpdates.

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
    return YES; 
} 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 

    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [tableView beginUpdates]; 

     [tableData removeObjectAtIndex:indexPath.row]; 
     [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 

     [tableView endUpdates]; 
    } 

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