@interface
CZViewController
()
@property ( nonatomic , strong ) UIView *myView;
@end
@implementation CZViewController
/**
动画组:一组动画同时执行
动画是调出来的!
*/
- ( UIView *)myView
{
if ( _myView == nil ) {
_myView = [[ UIView alloc ] initWithFrame : CGRectMake ( 110 , 100 , 100 , 100 )];
_myView . backgroundColor = [ UIColor redColor ];
[ self . view addSubview : _myView ];
}
return _myView ;
}
- ( void )viewDidLoad
{
[ super viewDidLoad ];
[ self myView ];
}
- ( void )touchesBegan:( NSSet *)touches withEvent:( UIEvent *)event
{
[ self groupAnim ];
}
#pragma mark - 动画组
- ( void )groupAnim
{
CAAnimationGroup *group = [[ CAAnimationGroup alloc ] init ];
// 向动画组中添加动画
// 路径动画
CAKeyframeAnimation *anim1 = [ CAKeyframeAnimation animationWithKeyPath : @"position" ];
anim1. path = [ UIBezierPath bezierPathWithOvalInRect : CGRectMake ( 60 , 100 , 200 , 200 )]. CGPath ;
// 旋转动画
CABasicAnimation *anim2 = [ CABasicAnimation animationWithKeyPath : @"transform.rotation" ];
anim2. toValue = @( M_PI * 10) ;
// 缩放动画
CABasicAnimation *anim3 = [ CABasicAnimation animationWithKeyPath : @"transform.scale" ];
anim3. fromValue = @(1.0f) ;
anim3. toValue = @(0.1f) ;
group. animations = @[ anim1, anim2, anim3 ] ;
// 动画时长,一组动画整体完成的时间
group. duration = 2.0f ;
[ self . myView . layer addAnimation :group forKey : nil ];
}
@end
@property ( nonatomic , strong ) UIView *myView;
@end
@implementation CZViewController
/**
动画组:一组动画同时执行
动画是调出来的!
*/
- ( UIView *)myView
{
if ( _myView == nil ) {
_myView = [[ UIView alloc ] initWithFrame : CGRectMake ( 110 , 100 , 100 , 100 )];
_myView . backgroundColor = [ UIColor redColor ];
[ self . view addSubview : _myView ];
}
return _myView ;
}
- ( void )viewDidLoad
{
[ super viewDidLoad ];
[ self myView ];
}
- ( void )touchesBegan:( NSSet *)touches withEvent:( UIEvent *)event
{
[ self groupAnim ];
}
#pragma mark - 动画组
- ( void )groupAnim
{
CAAnimationGroup *group = [[ CAAnimationGroup alloc ] init ];
// 向动画组中添加动画
// 路径动画
CAKeyframeAnimation *anim1 = [ CAKeyframeAnimation animationWithKeyPath : @"position" ];
anim1. path = [ UIBezierPath bezierPathWithOvalInRect : CGRectMake ( 60 , 100 , 200 , 200 )]. CGPath ;
// 旋转动画
CABasicAnimation *anim2 = [ CABasicAnimation animationWithKeyPath : @"transform.rotation" ];
anim2. toValue = @( M_PI * 10) ;
// 缩放动画
CABasicAnimation *anim3 = [ CABasicAnimation animationWithKeyPath : @"transform.scale" ];
anim3. fromValue = @(1.0f) ;
anim3. toValue = @(0.1f) ;
group. animations = @[ anim1, anim2, anim3 ] ;
// 动画时长,一组动画整体完成的时间
group. duration = 2.0f ;
[ self . myView . layer addAnimation :group forKey : nil ];
}
@end