快门动画 AVFoundation iPhone

6

我正在尝试复制iPhone相机应用程序的默认快门动画。

也许有人已经尝试过这样做,并有一些提示可以分享吗?

2个回答

20

好的,我在某处找到了这个:

     CATransition *shutterAnimation = [CATransition animation];
     [shutterAnimation setDelegate:self];
     [shutterAnimation setDuration:0.6];

     shutterAnimation.timingFunction = UIViewAnimationCurveEaseInOut;
     [shutterAnimation setType:@"cameraIris"];
     [shutterAnimation setValue:@"cameraIris" forKey:@"cameraIris"];
     CALayer *cameraShutter = [[CALayer alloc]init];
     [cameraShutter setBounds:CGRectMake(0.0, 0.0, 320.0, 425.0)];
     [self.layer addSublayer:cameraShutter];
     [self.layer addAnimation:shutterAnimation forKey:@"cameraIris"];

这是iPhone默认的相机快门动画。


9
“cameraIris”不是[CATransition type]的公共文档值,真是太遗憾了。有没有人有经验能告诉我这是否会被苹果拒绝? - Hailei
不错!timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; - Roman Solodyashkin

2

在Swift 3.0中...

let shutterAnimation = CATransition.init()
shutterAnimation.duration = 0.6
shutterAnimation.timingFunction = CAMediaTimingFunction.init(name: 
kCAMediaTimingFunctionEaseInEaseOut)
shutterAnimation.type = "cameraIris"
shutterAnimation.setValue("cameraIris", forKey: "cameraIris")

let shutterLayer = CALayer.init()
shutterLayer.bounds = self.view.bounds
self.view.layer.addSublayer(shutterLayer)
self.view.layer.add(shutterAnimation, forKey: "cameraIris")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接