I have been building my Mac app against OS X 10.10. With OS X 10.11 around the corner I decided to try compiling and running my app with it to see how it performed. Immediately I noticed that many of my view animations are broken. Those animations are performed by the following steps:
1. Set the starting frame for several layer backed NSView objects.
2. Begin an animation context with [NSAnimationContext beginGrouping];
3. Set the ending frame position for the same NSView objects in #1 above.
4. Set an animation timing curve on the NSAnimationContext.
5. Set an animation duration on the NSAnimationContext.
6. Set a completion handler on the NSAnimationContext that performs post-animation cleanup and removes offscreen views from the view hierarchy.
7. Ending the NSAnimationContext grouping and thus beginning the animation.
The animations worked perfectly (albeit slower) under OS X 10.10 but under OS X 10.11 there are two problems right off the bat:
1. Views seem to animate from the wrong starting position. A view that would normally animate from off-screen right now seems to animate in from off-screen left.
2. When views are transitioning off-screen the contents that these views draw (with drawRect:) seem to disappear prior to the view animating completely off-screen.
I read that CoreAnimation (and thus NSAnimationContext) now use the Metal API's and perhaps there are some kind of off-screen optimizations that are affecting my animations. Does anybody have any advice for figuring how how to solve my problems?
Thanks in advance.