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地图