iPhone如何在相机应用程序中获取照片效果?

时间:2012-10-08 08:20:51

标签: iphone camera core-animation

我正在谈论当用户按下按钮拍照时的效果,它缩小并移动到工具栏?这一般是如何实现的?

2 个答案:

答案 0 :(得分:0)

所以缩小动画是由

实现的
 [UIView beginAnimations:@"animationShrink" context:NULL];
    [UIView setAnimationDuration:kSlideInAnimationDuration];

    flipFlopContainer.transform = CGAffineTransformMakeScale(0.01, 0.01);
    [UIView setAnimationDelegate:self];
    [UIView    setAnimationDidStopSelector:@selector(shrinkAnimationFinished:)];
    [UIView commitAnimations];

在shrinkAnimationFinished方法中执行此动画后,您需要定义要跟随的路径并更改视图位置以适应该路径。

请参阅以下线程了解该动画

Resize and move a UIView with Core Animation (CAKeyFrameAnimation)

答案 1 :(得分:0)

您可以通过缩放(应用变换)和移动(动画位置)图像来创建它。

我在this blog post写了一篇类似的动画(iPhone上的Safari中的Open in Background动画)。并非所有代码都是必需的,但它的某些部分对于您尝试的动画非常有用。


你应该

  • 计算比例因子以使图像具有合适的大小
  • 计算要为图像设置动画的路径。
  • 使用计算出的比例因子
  • 为比例设置动画
  • 沿路径设置位置动画(使用CAKeyframeAnimation)

由于您一次执行两个动画,因此可以使用CAAnimationGroup。

由于您要动画制作工具栏,这可能是视图层次结构的另一部分,而不是图像的位置,您可能需要使用类似

的方法
- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view

- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view 

转换不同视图之间的坐标。