在 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的主要内容,如果未能解决你的问题,请参考以下文章
在 Foursquare“Das-Quadrat”iOS API 包装器中使用 categoryId 作为搜索过滤器