I am currently using a master-detail iPad UI: inside a UISplitViewController I have the left (master) side contain a UITableViewController, and the right (detail) side contains an iCarousel. See attached image.
Problem: When scrolling the table view WHILE the carousel is still animating The table view scrolls and decelerates smoothly, and the iCarousel scrolls in a sluggish (that is, barely animating at all) fashion.
What can one do to improve the iCarousel's animation "smoothness" when animating in concurrence to a table view animating/decelerating?
Points for consideration:
Tested on iPad 1 (non-retina), iPad 4G (retina), and in simulator retina and non retina, same results in all platforms.
It does not seem to matter whether you first drag the carousel and then the table or in the other order, the table view always takes "precedence", and iCarousel's smooth animation performance seems to go *^&k!.
The problem is that the timer that drives the animation, is scheduled in the default run loop mode, which means that the timer won't fire while you scroll in a UIScrollView
(which the table view inherits from). To solve this problem, you have to modify the iCarousel code (line 1737, startAnimation
). Add the following:
[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];