弹框动画-CATransform3D放大缩小

弹框动画原理#

利用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 讲解

你可能感兴趣的:(弹框动画-CATransform3D放大缩小)