I know, that when I implement tableView:willBeginEditingRowAtIndexPath:
and tableView:didEndEditingRowAtIndexPath:
, a swipe-to-delete does not call setEditing:animated:
at my UITableViewController
(being the delegate of the UITableView
).
I have a custom UITableViewCell
implementation that does a little UI rearrangements when going to edit mode. I wanted to be smart and implemented these changes in setEditing:animated:
at the table view cell implementation itself (which obviously makes sense).
However, when swiping to delete, I still get a call to setEditing:animated:
at my table view cell implementation. And I have no parameter that tells me that I am swiping. The call stack also shows none of my own methods that would give me a chance to do something. It shows that setEditing:animated
is called at the UITableView
. The only thing obviously is, that it is not called at the delegate (my controller in this case).
Of course, I could set a flag at the cell in tableView:willBeginEditingRowAtIndexPath:
that tells it that the next setEditing
call will be for a swipe, but that does not sound like good style.
Edit: it doesn't even work, because it is not guaranteed that tableView:didEndEditingRowAtIndexPath:
is called, so I cannot set the flag back.
Any ideas how to solve this issue elegantly?
UITableViewDelegate
I can distinguish both, becausesetEditing:animated:
is not called when swiping to delete. However I am not able to make a difference in theUITableViewCell
implementation. Or am I somehow? – Togoland