Tiếp theo là một chuyển động khác khá là hay của Core Animation là hiệu ứng xoay tròn kết hợp với hiệu ứng thu nhỏ và phóng lớn.
Với hiệu ứng này ta có thể làm những cảnh biến mất trở nên có hồn hơn, sinh động hơn. Tuy nhiên đừng nên lạm dụng vì khá là chóng mặt với nó.
Đây là phần code cho hiệu ứng này:
– (void)viewDidLoad
{
[super viewDidLoad];
UIImage *image = [UIImage imageNamed:@”Dice_1.png”];
lkLayer = [CALayer layer];
lkLayer.contents = (id)image.CGImage;
lkLayer.bounds = CGRectMake(0, 0, 200, 200);
lkLayer.position = CGPointMake(160, 200);
[self.view.layer addSublayer:lkLayer];
CABasicAnimation* rotationAnimation = [CABasicAnimation animationWithKeyPath:@”transform.rotation.z”];
rotationAnimation.toValue = [NSNumber numberWithFloat:(2 * M_PI) * 3];
rotationAnimation.duration = 1.9f;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@”transform.scale”];
scaleAnimation.fromValue = [NSNumber numberWithFloat:0.0];
scaleAnimation.toValue = [NSNumber numberWithFloat:1.0];
scaleAnimation.duration = 2.0f;
scaleAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
animationGroup.duration = 2.0f;
animationGroup.autoreverses = YES;
animationGroup.repeatCount = HUGE_VALF;
[animationGroup setAnimations:[NSArray arrayWithObjects:rotationAnimation, scaleAnimation, nil]];
[lkLayer addAnimation:animationGroup forKey:@”animationGroup”];
}
Khá là bắt ắt phải không? Nó bao gồm mộ Group các hiệu ứng cho phép chúng ta tiến hành song song nhiều hiệu ứng cùng lúc để tạo sự sinh động cho hình ảnh
Leave a Reply