UITableViewRowActions stop working after swipping on a row that has no actions

Originator:javier.api
Number:rdar://27202477 Date Originated:06/06/2016
Status:Open Resolved:
Product:UIKit Product Version:10.0.0 Beta 2
Classification:UI/Usability Reproducible:Always
 
Summary:
If you set up a UITableView to combine rows with actions (returning a non-empty array from `tableView:editActionsForRowAt:`) and rows with no actions (returning either an empty array or nil from said method), rows with actions will stop allowing you to swipe on them after you attempt to swipe on one of the rows without actions

Steps to Reproduce:
- Create a UITableView
- Implement UITableViewDataSource
- Implement `tableView:editActionsForRowAt:` such that it returns actions for some rows but not for others.
- Launch app.
- 1: Swipe on a row with actions
- 2: Swipe on a row with no actions
- 3: Swipe on a row with actions

Expected Results:
1: shows the actions beneath the row and they work
2: doesn’t allow shipping
3: same as 1

Actual Results:
1: behaves as expected
2: allows swiping the row slightly, not displaying anything underneath
3: after 2, all attempts to swipe rows will fail, and actions are not usable after the UITableView is recreated (which in some cases may require the app to be re-launched). This is reproducible 100% (see attached project)

Version:
iOS 10.0.0 Beta 2

Notes:
This is reproducible in iOS 9.3 and iOS 10 Beta 1 and 2.
No workaround has been found. I’ve attached a minimal project that reproduces the issue.

Configuration:
Reproduces on any device and simulator

Attachments:
'TableViewActions-RadarSampleProject.zip' was successfully uploaded.

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!