tableView:didEndEditingRowAtIndexPath: not being called following cancelled swipe-to-edit

Originator:oliver.drobnik
Number:rdar://19411256 Date Originated:8 January 2015
Status:Open Resolved:
Product:iOS Product Version:iOS 8.1.2 (12B440)
Classification:Serious Bug Reproducible:Always
 
Summary:
The tableView:didEndEditingRowAtIndexPath: delegate method is not being called if the swipe-to-edit gesture is cancelled with the editing actions opened too little.

This is a problem if you have a UIButton inside the table view cell, because if you start the swipe-to-delete gesture over the button, then both the button as well as the editing action are executed. The provided delegate methods would allow me to enable/disable interaction with this button during editing. 

But this issue allows for a state to occur where the editing actions are not visible, but the button still being disabled. So the user would have to tap once to get the delegate method to fire and re-enable user interaction and another time to actually tap the button.

Steps to Reproduce:
1) Run the provided sample app
2) Swipe any row to the left
3) Note that it turns red
4) tap anywhere to have the editing end, it turns green again
5) Now swipe to the left, but only so far that the cell text begins to touch the left edge of the screen, then let go

Expected Results:
- the editing actions should be hidden
- the tableView:didEndEditingRowAtIndexPath: should be called when they are

Actual Results:
- editing actions are hidden
- tableView:didEndEditingRowAtIndexPath: is not called called
- when you start scrolling the table view, it is called TWICE

I expect the 

Version:
iOS 8.1.2 (12B440)

Notes:
Indeed the tableView:didEndEditingRowAtIndexPath: is called TWICE even during normal operation of showing the actions. Should I file another bug report for that?

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!