UITableViewCell проведен, но кнопка удаления не появляется - PullRequest
1 голос
/ 04 февраля 2011

Это странно.Я правильно проводя UITableViewCell в симуляторе iPad.Несмотря на то, что событие ниже запускается, и swipedCell не ноль, кнопка Удалить не появляется.На самом деле, это появляется - но только иногда.Я никогда не получаю плохой доступ или сигбарт.

Вот код:

- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer 
{   
    if (userListSwipeRightRecognizer.state == UIGestureRecognizerStateEnded) {
        CGPoint swipeLocation = [userListSwipeRightRecognizer locationInView:self.outletView];
        NSIndexPath *swipedIndexPath = [self.outletView indexPathForRowAtPoint:swipeLocation];
        UITableViewCell* swipedCell = [self.outletView cellForRowAtIndexPath:swipedIndexPath];
        [swipedCell setEditing:YES];

    }   
}

Это просто проблема симулятора или я что-то не так делаю?

Ответы [ 3 ]

10 голосов
/ 04 февраля 2011

Если вы просто хотите включить на своем столе функцию «смахивание-удаление», есть гораздо более простой способ сделать это. Реализуйте tableView:commitEditingStyle:forRowAtIndexPath: в своем источнике данных, и табличное представление автоматически покажет кнопку удаления, когда ячейка проведена.

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
0 голосов
/ 21 февраля 2011

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

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
}
0 голосов
/ 04 февраля 2011

Если вы определили свой UITableView в своем заголовке, попробуйте:

 swipedCell = [self.outletView cellForRowAtIndexPath:swipedIndexPath];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...