кнопка удаления сброса - PullRequest
1 голос
/ 16 мая 2011

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

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

Ответы [ 3 ]

2 голосов
/ 16 мая 2011

Попробуйте этот код,

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

if(fails)
{
  [self.tableView reloadData];
  [super setEditing:YES animated:YES]; 
  [self.tableView setEditing:YES animated:YES];
}
0 голосов
/ 01 мая 2015

Это сбросит только ячейку, которую нужно сбросить.

- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    if(fails)
    {
        [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    }
}
0 голосов
/ 21 декабря 2012

Ответ KingofBliss выполнит работу, однако это немного конкретнее. Этот подход оживляет сброс подтверждения удаления и, по существу, «касается» элемента управления редактирования удаления (действие, которое сбрасывает подтверждение).

UITableViewCell *cell = [self.detailsTableView cellForRowAtIndexPath:indexPath];
[cell.subviews enumerateObjectsUsingBlock:^(UIView *subview, NSUInteger index, BOOL *stop){

      if([subview isKindOfClass:NSClassFromString(@"UITableViewCellEditControl")])
      {
                UIControl *editControl = (UIControl *)subview;
                [editControl sendActionsForControlEvents:UIControlEventTouchUpInside];
      }

}];

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