Я знаю, что, когда я реализую tableView:willBeginEditingRowAtIndexPath:
и tableView:didEndEditingRowAtIndexPath:
, при удалении смахивания не вызывается setEditing:animated:
в моем UITableViewController
(являющемся делегатом UITableView
).
У меня есть пользовательская реализация UITableViewCell
, которая немного переставляет интерфейс при переходе в режим редактирования.Я хотел быть умным и реализовал эти изменения в setEditing:animated:
в самой реализации ячейки табличного представления (что, очевидно, имеет смысл).
Однако, когда проводишь пальцем по удалению, я все равно получаю вызов setEditing:animated:
вмоя реализация представления представления таблицы.И у меня нет параметра, который говорит мне, что я провожу.Стек вызовов также не показывает ни один из моих собственных методов, которые дали бы мне возможность что-то сделать.Это показывает, что setEditing:animated
вызывается в UITableView
.Очевидно, единственное, что он не вызывается у делегата (в данном случае мой контроллер).
Конечно, я мог бы установить флаг в ячейке в tableView:willBeginEditingRowAtIndexPath:
, который говорит, что следующий setEditing
вызов будет для прокрутки, но это не похоже на хороший стиль.
Редактировать : он даже не работает, потому что не гарантируется, что вызывается tableView:didEndEditingRowAtIndexPath:
поэтому я не могу установить флаг обратно.
Есть идеи, как решить эту проблему элегантно?