一蚂且、簡介
- 動畫組配猫,是CAAnimation的子類,
- 特點:可以保存
一組動畫對象
膘掰,將CAAnimationGroup對象加入圖層后
章姓,組中所有動畫對象可以同時并發(fā)運行
animations屬性:用來保存一組動畫對象的NSArray
注意:
默認
情況下,一組動畫對象是同時運行的
识埋,也可以通過設置動畫對象的beginTime屬性來更改動畫的開始時間
二凡伊、應用
-
實例:
- 點擊屏幕,讓控制器的view的子控制器redView同時執(zhí)行:平移窒舟、縮放系忙、位移動畫 -> 使用動畫組
代碼實現:如下
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *redView;
@end
@implementation ViewController
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CAAnimationGroup *group = [CAAnimationGroup animation];
// 平移
CABasicAnimation *anim = [CABasicAnimation animation];
anim.keyPath = @"position";
anim.toValue = [NSValue valueWithCGPoint:CGPointMake(arc4random_uniform(200), arc4random_uniform(500))];
// 縮放
CABasicAnimation *anim1 = [CABasicAnimation animation];
anim1.keyPath = @"transform.scale";
// 0 ~ 1
static CGFloat scale = 0.1;
if (scale < 1) {
scale = 1.5;
}else{
scale = 0.2;
}
anim1.toValue = @(scale);
// 旋轉
CABasicAnimation *anim2 = [CABasicAnimation animation];
anim2.keyPath = @"transform.rotation";
anim2.toValue = @(arc4random_uniform(360) / 180.0 * M_PI);
group.animations = @[anim,anim1,anim2];
group.duration = 0.5;
// 取消反彈
// 告訴在動畫結束的時候不要移除
group.removedOnCompletion = NO;
// 始終保持最新的效果
group.fillMode = kCAFillModeForwards;
[_redView.layer addAnimation:group forKey:nil];
}
@end