Scrolling back up on a tableView that uses `estimatedRowHeight` flickers wildly

Originator:padraig.kennedy
Number:rdar://20829237 Date Originated:05-May-2015 05:21 PM
Status:Open Resolved:
Product:iOS SDK Product Version:8.3
Classification:UI/Usability Reproducible:Always
 
Summary:
When using estimatedRowHeight and scrolling quickly past a cell that never gets its heightForRowAtIndexPath called, some cells that are drawn when scrolling back up flicker wildly.

Steps to Reproduce:
1. Create a table with lots of cells. 
2. Provide an `estimatedRowHeight`
3. Implement `tableView:heightForRowAtIndexPath:` and return a different value than `estimatedRowHeight`
4. Call `scrollToRowAtIndexPath:atScrollPosition:animated` to go to the last cell
5. It'll end up halfway down the table thanks to radar 20829131, but that's fine for now.
6. Using your finger, start slowly scrolling back up towards the top of the table.

Expected Results:
The tableview cells should draw smoothly as you scroll back up.

Actual Results:
1. After scrolling 10-15 cells the cells all suddenly jump and scroll much faster than they should be.
2. Things settle down and are normal again until you scroll up another 10 or so cells...

Regression:
Describe circumstances where the problem occurs or does not occur, such as software versions and/or hardware configurations.

Notes:
Manually scrolling fast enough to skip a cell causes this too, but the scrollToRowAtIndexPath method here illustrates it easiest. The wider the difference between estRowHeight and actualHeight, the worse this gets — it is noticeable even with 5pt differences though.

Comments

Engineering has determined that your bug report (20829237) is a duplicate of another issue (19581195) and will be closed.

By padraig.kennedy at May 20, 2015, 11:40 p.m. (reply...)

Test project here: https://github.com/PadraigK/estimatedRowHeightFail/tree/master

By padraig.kennedy at May 6, 2015, 12:42 a.m. (reply...)

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!