我说的是当用户按下按钮拍照时的效果,它会缩小并移动到工具栏?这一般是如何实现的?
问问题
230 次
2 回答
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 方法中的此动画之后,您需要定义要遵循的路径并更改视图的位置,以适应该路径。
有关该动画,请参见以下线程
于 2012-10-08T08:30:17.333 回答
0
您可以通过缩放(应用变换)和移动(动画位置)图像来创建它。
我在这篇博文中写了一个类似的动画(iPhone 上 Safari 的后台打开动画)。并非所有代码都是必需的,但其中的某些部分对您尝试制作的动画很有用。
你应该
- 计算比例因子使图像大小合适
- 计算您想要为图像设置动画的路径。
- 使用计算的比例因子为比例设置动画
- 沿路径设置位置动画(使用 CAKeyframeAnimation)
由于您同时制作两个动画,因此您可以从使用 CAAnimationGroup 中受益。
由于您正在动画到工具栏,这可能是视图层次结构的另一部分,而不是图像所在的位置,您可能需要使用类似的方法
- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view
和
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
转换不同视图之间的坐标。
于 2012-10-08T08:34:14.600 回答