UITableViews do not animate properly on an Airplay screen

Originator:timothy.sanders
Number:rdar://11448474 Date Originated:5/14/12
Status:Open Resolved:
Product:iPad SDK Product Version:5.1
Classification:Serious Bug Reproducible:Always
 
Summary: UITableView methods such as scrollToRowAdIndexPath:atScrollPosition:animated: do not animate if called on a view in an Airplay secondary screen.

Steps to Reproduce:

1. Build and run the provided sample application. The code is also available at https://github.com/HiddenJester/AirplayTableScrollingTest .

2. Turn on Airplay mirroring in the usual fashion.

3. The Airplay screen will display two tables and call scrollToRowAdIndexPath:atScrollPosition:animated: on both. The table on left has animated:YES and the table on the right has animated:NO.

Expected Results:

Both tables should scroll to the same cells. The table on the right should jump there instantly while the table on the left scrolls. NOTE: if you use a Digital AV Adapter to connect a physical screen instead of using Airplay the same view will be created and both tables scroll in this case.

Actual Results:

The left table never changes position while the right table jumps to new positions as expected.

Regression:

I've confirmed this happens on an iPad running iOS 5.1 talking to an Apple TV (3rd generation) running both 5.0.1 and 5.0. It does NOT happen when using a Digital AV Adapter to directly connect the same display to the iPad's dock connector. The code does nothing to distinguish between the two cases.

Notes:

The code has a workaround, if you change USE_ANIMATION_WORKAROUND to be nonzero in SecondaryViewController.m. As far as I can tell any animated UITableView method has this problem, but if you animate the contentOffset directly in an animation block (via [UIView animateWithDuration:delay:options:animations:completion]) then the animation behaves correctly both via Airplay and via a direct physical cable.

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!