2012-11-11 27 views
7

我正在尝试使用CATransitionfilter属性以及新的iOS 6转换动画(CIBarsSwipeTransition,CICopyMachineTransition等)。 CIFilter documentation表示这些在iOS 6上可用,并且CATransition documentation上的任何内容都表示无法使用filter属性。使用转换CIFilters进行CATransition

但是,我似乎无法让他们工作。我不知道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]; 

任何指针,赞赏。

回答

3

我不确定它可能在iOS上。从CATransition文档:

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

CIFilter documentation(常数部分)(重点煤矿)

kCIInputTargetImageKey

一种用于CIImage对象为过渡目标图像密钥。 在OS X v10.5及更高版本中可用。 不适用于iOS

过滤器存在,并且inputTargetImage是输入键的,但即使你自己创建的核心图像数据,并将其分配给的属性(在调试器正确显示),那么你还是不明白效果。

在OS X上创建相同的效果与问题中的代码一样简单。我已经把这个作为雷达提交(13281399)。

+0

您能否提供指向“在iOS中不可用”的文档的链接?我在我的问题中链接的文件没有提到这一点。无论如何,我很久以前就放弃了这一点,并做出了我自己的定制实现。我会把这个标记为答案,因为你似乎比我更多地关注这个问题,并提出了一个雷达。 –

+1

链接已添加到答案。常量部分在底部。 – jrturton