iOS开发专题

弹框动画-CATransform3D放大缩小

2017-05-07  本文已影响188人  摸着石头过河_崖边树

弹框动画原理#

利用CATransform3D 4×4矩阵属性实现放大,
CATransform3D CATransform3DMakeScale (CGFloat sx, CGFloat sy, CGFloat sz)
sx :表示x轴偏移
sy:表示y轴偏移位置
sz :表示z轴偏移

苹果手机的x轴:x越大,x---->向右越大
y轴:y越大,y------>向下越大
z轴:z越大, z ---->越向外,接近屏幕
所以要实现放大缩小动画,只需要改变x.y值就可以

代码实现#

//弹出放大-缩小效果
- (void) shakeToShow:(UIView)aView{
CAKeyframeAnimation
animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
animation.duration = 1.0;
NSMutableArray *values = [NSMutableArray array];
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)]];
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.5, 1.5, 1.0)]];
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.9 , 0.9, 1.0)]];
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)]];
animation.values = values;
[aView.layer addAnimation:animation forKey:nil];
}

参数链接:CATransform3D 讲解

上一篇下一篇

猜你喜欢

热点阅读