не удаляет клетки - PullRequest
       4

не удаляет клетки

1 голос
/ 24 февраля 2011

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

Я отслеживаю все выбранные изображения, и когда пользователь подтверждает удаление, тогда изображения удаляются из массива, и таблица должна обновляться.

Вызов [self.tableview reloadData] не удаляет ячейки из моего tableView.

Как мне этого добиться? Как я могу позвонить

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

или что-то подобное, чтобы заставить таблицу проверять источник данных и перерисовывать ячейки?

Ответы [ 3 ]

0 голосов
/ 24 февраля 2011

Обычно требуется использование метода UITableViewDelegate для использования красной вспомогательной кнопки DELETE Также обязательно обновляйте источник данных before, выполняя любую вставку или удаление.Если количество строк, предоставленных источником данных, не соответствует количеству строк в таблице после вставки или удаления, произойдет сбой.

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

    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Update data source to match row counts of the source and the tableView

        // An array containing multiple NSIndexPath is used
        // You can create an array with only one element
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
    }
}
0 голосов
/ 24 февраля 2011

Глядя на сценарий, вы можете выполнить это двумя способами

1), используя функцию reloadData

while using this please make sure about the 2 thing when you choose to delete the cell first check whether that particular record has been deleted at indexpath which you want it to be. 

Во-вторых, после удаления данных из массива после этого используйте [self.tableViewreloadData] или [ObjectofTableView reloadData].Этот способ также отлично работает.

Но компания Apple предоставила несколько методов для удаления ячеек из таблицы с некоторыми эффектами. Так что очень полезно использовать этот способ ниже.

2) Я предпочитаю использовать это, поскольку в приложении с UITableView это отлично смотрится.

  • (void) tableView: (UITableView *) tableView commitEditingStyle: (UITableViewCellEditingStyle) editStyle forRowAtIndexPath: (NSIndexPath *) indexPath {

    if (editStyle == UITableViewCellEditingStyleDelete) {

     //Over  here first delete record from array at indexPath   
    

    // [self makeLogout];[self.acloginTblView deleteRowsAtIndexPaths: [NSArray arrayWithObject: indexPath] withRowAnimation: UITableViewRowAnimationFade];}

    [self.acloginTblView reloadData];}

Надеюсь, после того, как так много болит мой палец, я буду лучше решать ваши вопросы;)

0 голосов
/ 24 февраля 2011

Используйте это вместо

[yourTableView deleteRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationTop];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...