Как определить, была ли скрыта кнопка удаления UItableviewcell?

У меня есть представление, которое содержит UITableView. Я могу показать кнопку удаления в ячейке, когда пользователь проводит пальцем.

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

Как я могу это обнаружить?

Ответы на вопрос(3)

[UITableViewCell showingDeleteConfirmation]

или же

[UITableViewCell willTransitionToState:] сUITableViewCellStateShowingDeleteConfirmationMask как параметр

В вашем подклассе UITableViewCell реализуйте метод willTransitionToState :. Этот метод вызывается UITableView, когда ячейка переходит в / из состояния редактирования.

В вашей реализации класса вам нужно будет условно проверить значение параметра маски, передаваемого в метод, чтобы определить, в какое состояние ячейка переходит в / из. Возможные значения для маски ...

enum {
    UITableViewCellStateDefaultMask                     = 0,
    UITableViewCellStateShowingEditControlMask          = 1 << 0,
    UITableViewCellStateShowingDeleteConfirmationMask   = 1 << 1
};

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

- (void)willTransitionToState:(UITableViewCellStateMask)state {
    if (state == UITableViewCellStateDefaultMask) {
        // User has switched back to default state...
        // ...
    }
}
Решение Вопроса

Когда пользователь нажимает за пределами метки удаления в ячейке, ваша программа должна получить вызовtableView:didEndEditingRowAtIndexPath: на столе вид делегата.

 01 мая 2014 г., 20:34
Это, похоже, не работает в режиме редактирования.
 Kassem17 мая 2012 г., 10:48
Работает. Спасибо :)

Ваш ответ на вопрос