iPhoto
中怀念去某张照片时,点击删除键,就会看出照片给回收及垃圾箱的卡通片。

今天即令来模拟一下这动画(据说有只私有API可以实现,不过私有的嘛,忽略的)。

率先仔细考察下者动画,包含了岗位,大小还有可见三个举足轻重动画。

为掌握的认证,先上着力代码:

UIBezierPath *movePath = [UIBezierPath bezierPath];
             [movePath moveToPoint:fromPoint];
 
             [movePath addQuadCurveToPoint:toPoint
                              controlPoint:CGPointMake(toPoint.x,fromPoint.y)];
 
             
             CAKeyframeAnimation *moveAnim = [CAKeyframeAnimation animationWithKeyPath:@”position”];
             moveAnim.path = movePath.CGPath;
             moveAnim.removedOnCompletion = YES;
             
             CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@”transform”];
             scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
             scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];
             scaleAnim.removedOnCompletion = YES;
             
             CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@”alpha”];
             opacityAnim.fromValue = [NSNumber numberWithFloat:1.0];
             opacityAnim.toValue = [NSNumber numberWithFloat:0.1];
             opacityAnim.removedOnCompletion = YES;
             
             CAAnimationGroup *animGroup = [CAAnimationGroup animation];
             animGroup.animations = [NSArray arrayWithObjects:moveAnim, scaleAnim,opacityAnim, nil];
             animGroup.duration = 1;
             [imageView.layer addAnimation:animGroup forKey:nil];

UIBezierPath是用来创造各种曲线之好像,这个近乎非常强大,各种你能够体悟的都得以据此她来形成。

此间我们建之二次曲线实际上就是从相片的着力点位置及垃圾箱终点的平长曲线。

有关函数中controlPoint的选,自己查阅API吧,这里就是非多说

随之我们建了一个CAKeyframeAnimation的卡通片,这个重要用于落实动画的轨道变化,我们用动画的path值设为之前定义的曲线值。

诸如此类动画就见面依照我们设定的轨道移动了。

连接下去是大大小小变化之卡通片,设定了早期跟最后的镜头大小。CATransform3DMakeScale是用于转移变换矩阵的东东,对于二维的,z值始终为1.

随之是老大成透明度的动画片,很好明。

出于我们因此到了三种植动画,所以需要用CAAnimationGroup,这样一次性的施用她。

这般我们便完事了如此的卡通片,试试吧。

发描绘的匪了解的地方,欢迎指正。

http://www.cnblogs.com/scorpiozj

填补加了路文件 型文件下充斥

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图