在 iOS 中使用过滤器的 CATransition

Posted

技术标签:

【中文标题】在 iOS 中使用过滤器的 CATransition【英文标题】:CATransition with filter in iOS 【发布时间】:2015-04-10 12:11:20 【问题描述】:

我正在尝试为 CATransition 设置一个过滤器。看起来如此简单的事情却变成了问题 - 似乎过滤器属性被 CATransition 忽略了,我只剩下默认的淡入淡出效果(?!)

UIImage *start = [UIImage imageNamed:@"start"];
UIImage *target = [UIImage imageNamed:@"target"];

CIImage *startImg = [CIImage imageWithCGImage:start.CGImage];
CIImage *endImg = [CIImage imageWithCGImage:target.CGImage];

CIFilter *filter = [CIFilter filterWithName:@"CICopyMachineTransition" keysAndValues:
                    @"inputImage" , startImg,
                    @"inputTargetImage" , endImg,
                    @"inputTime" , @1.0, nil];

CATransition *transition = [CATransition new];

transition.duration = 1.75;
transition.filter = filter;

[self.imageView.layer addAnimation:transition forKey:kCATransition];

self.imageView.image = target;

【问题讨论】:

【参考方案1】:

我遇到了类似的事情,这篇文章帮助了我:

Using transition CIFilters for CATransition

基本上,我正在尝试使用我正在运行的 ios 版本上不可用的过滤器组合,但我阅读了该帖子以让我进入文档以解决所有问题。

希望这能让你朝着正确的方向前进。

更新:

再看这个,不知道是不是你的问题出在这里:

CATransition *transition = [CATransition new];

您不应该调用动画选择器吗?

CATransition *transition = [CATransition animation];

我不确定 'new' 在这种情况下会做什么,或者它是否会正确初始化。

【讨论】:

谢谢,但我不这么认为。从 iOS 6 开始支持 CICopyMachineTransition

以上是关于在 iOS 中使用过滤器的 CATransition的主要内容,如果未能解决你的问题,请参考以下文章

ios中二维码的使用

在 Foursquare“Das-Quadrat”iOS API 包装器中使用 categoryId 作为搜索过滤器

在iOS中的字典中使用字典数组的NSPredicate进行过滤

在 iOS 9 中使用相机滤镜对图像进行调平

如何在 iOS swift 中使用文本字段过滤日期数组?

如何在 iOS Swift 中使用段控制从模型中过滤名称、日期?