Как добавить дополнительные ячейки в UITableView в режиме редактирования? - PullRequest
4 голосов
/ 21 сентября 2009

Знаете ли вы, как отображать некоторые ячейки в табличном представлении после перехода таблицы в режим редактирования? Как и приложение «Контакты» для iPhone, когда вы редактируете контакт.

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

Я пробовал это:

[self.tableView setEditing:YES animated:YES];
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationBottom];

В моей таблице только 1 раздел, когда он не редактируется, я хотел добавить дополнительный раздел при редактировании (для простоты), но вызов 'insertSections' выше завершается сбоем (все мои делегаты таблицы учитывают 1 или 2 раздела, хорошо в зависимости от self.editing, я попытался показать оба раздела в обычном режиме, и он отлично работает)

Для 'numberOfSectionsInTableView' у меня есть:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    if (!self.editing) return 1;
    return 2;
}

1 Ответ

4 голосов
/ 21 сентября 2009

Где вы вошли в состояние редактирования tableView? Вы должны сделать это в - [UINavigationController setEditing: animated:]:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [self.tableView setEditing:editing animated:animated];

    if(editing){
        [self.tableView insertSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationBottom];
    } else {
        // delete section
    }
}

Таким образом, вместо вызова setEditing для tableView, вызовите его на navigationController (возможно, self). Затем контроллер будет обрабатывать режим редактирования.

Таким образом, контроллер имеет режим редактирования, а tableView имеет. TableView будет в режиме редактирования после того, как вы установите его программно или когда пользователь проведет пальцем, чтобы удалить строку. В последнем случае контроллер равен , а не в режиме редактирования, но tableView равен .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...