2012-05-17 3 views
5

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

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

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

ответ

3

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

+0

работ. Спасибо :) – Kassem

+0

Это не работает из режима редактирования. –

3

[UITableViewCell showingDeleteConfirmation]

или

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

1

В подклассе 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... 
     // ... 
    } 
} 
Смежные вопросы