使用转换CIFilter进行CATransition

Joh*_*pia 7 core-animation core-image ios ios6

我正在尝试使用新的iOS 6过渡动画(CIBarsSwipeTransition,CICopyMachineTransition等)CATransitionfilter属性.该CIFilter文件说,这些都可以在iOS 6,并没有什么上的CATransition文件说,该filter财产不能使用.

但是,我似乎无法让他们工作.我不知道Apple是否没有提到功能的不可用性,或者我只是错过了让它工作的东西.这是我如何设置它:

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];
Run Code Online (Sandbox Code Playgroud)

任何指针都表示赞赏.

jrt*_*ton 3

我不确定这在 iOS 上是否可行。来自 CATransition 文档:

如果指定,过滤器必须支持kCIInputImageKeykCIInputTargetImageKey输入键以及kCIOutputImageKey输出键。

来自CIFilter 文档(常量部分)(重点是我的)

kCIInputTargetImageKey

CIImage 对象的键,该对象是过渡的目标图像。适用于 OS X v10.5 及更高版本。在 iOS 中不可用

过滤器存在,并且inputTargetImage是输入键之一,但即使您自己创建核心图像数据并将其分配给属性(在调试器中正确显示),您仍然无法获得效果。

在 OS X 上创建相同的效果就像您问题中的代码一样简单。我已将其归档为雷达(13281399)。