I'm trying to use CATransition
's filter
property with the new iOS 6 transition animations (CIBarsSwipeTransition, CICopyMachineTransition, etc.). The CIFilter
documentation says that these are available on iOS 6, and nothing on the CATransition
documentation says that the filter
property cannot be used.
But, I can't seem to get them to work. I don't know if Apple just failed to mention the inavailability of the functionality or I'm just missing something to make it work. Here's how I set it up:
CIFilter *transitionFilter = [CIFilter filterWithName:@"CIBarsSwipeTransition"];
[transitionFilter setDefaults];
CATransition *transition = [CATransition new];
transition.duration = 0.4f;
transition.filter = transitionFilter;
[self.view.layer addAnimation:transition forKey:kCATransition];
Any pointers are appreciated.
I know that question is quite old but I got mine working by following that link
https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_tasks/ci_tasks.html
Check the 11 steps in the section "Using Transition Effects" it works on iOS as well
I'm not sure it is possible on iOS. From the CATransition documentation:
If specified, the filter must support both
kCIInputImageKey
andkCIInputTargetImageKey
input keys, and thekCIOutputImageKey
output key.
From the CIFilter documentation (constants section) (emphasis mine)
kCIInputTargetImageKey
A key for a CIImage object that is the target image for a transition. Available in OS X v10.5 and later. Not available in iOS.
The filter exists, and inputTargetImage
is one of the input keys, but even if you create the core image data yourself and assign it to the properties (which displays properly in the debugger) then you still don't get the effect.
Creating the same effect on OS X is as simple as the code in your question. I have filed this as a radar (13281399).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With