iOS CAAnimationGroup 動(dòng)畫組

- (void)viewDidLoad {

? ? [super viewDidLoad];

? ? _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(90, 90, 90, 90)];

? ? _imageView.image= [UIImageimageNamed:@"joy.jpg"];

? ? [self.view? addSubview:_imageView];

}

- (void)touchesBegan:(NSSet *)toucheswithEvent:(UIEvent*)event{


? ? CGPointpoint = [[touchesanyObject]locationInView:self.view];


? CAKeyframeAnimation*animation1 =? [selfgetAniamtion1];


? CAKeyframeAnimation*animation2 =? [selfgetAnimation2:point];


? ? CAAnimationGroup *animationGroup = [CAAnimationGroup animation];


? ? animationGroup.animations=@[animation1,animation2];


? ? animationGroup.duration=3;


? ? animationGroup.repeatCount=MAXFLOAT;


? ? //加速方式: 勻速:kCAMediaTimingFunctionLinear

? ? animationGroup.timingFunction = [CAMediaTimingFunction? functionWithName:? kCAMediaTimingFunctionLinear];


? ? [_imageView.layer? addAnimation:animationGroupforKey:nil];


}

//獲取抖動(dòng)動(dòng)畫

-(CAKeyframeAnimation *)getAniamtion1{


? ? CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"];


? ? keyFrameAnimation.duration=3;

? ? keyFrameAnimation.repeatCount=MAXFLOAT;

//? ? keyFrameAnimation.autoreverses = YES;


? ? CGFloat? angle? =? M_PI*2;


//? ? keyFrameAnimation.values = @[@(angle),@(-angle) ];


?keyFrameAnimation.values=@[@(angle),@0];


? ? [_imageView.layer? addAnimation:keyFrameAnimationforKey:nil];


? ? return? keyFrameAnimation;

}

-(CAKeyframeAnimation *)getAnimation2:(CGPoint )point{


? ? CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];


? ? CGMutablePathRef path = CGPathCreateMutable();


? ? CGFloatw = point.x-_imageView.center.x;


? ? CGFloath = point.y-_imageView.center.y;


? ? CGRect? rect =CGRectMake(_imageView.center.x,_imageView.center.y, w, h);


? ? CGPathAddRect(path,NULL, rect);


? ? keyFrameAnimation.path= path;


? ? keyFrameAnimation.duration=3;





? ? returnkeyFrameAnimation;

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容