iOS利用系統提供方法來做關鍵幀動畫
ios7以后才有用。
/*關鍵幀動畫options:UIViewKeyframeAnimationOptions類型*/[UIView animateKeyframesWithDuration:5.0 delay:0 options: UIViewAnimationOptionCurveLinear| UIViewAnimationOptionCurveLinear animations:^{//第二個關鍵幀(準確的說第一個關鍵幀是開始位置):從0秒開始持續50%的時間,也就是5.0*0.5=2.5秒[UIView addKeyframeWithRelativeStartTime:0.0 relativeDuration:0.5 animations:^{_imageView.center=CGPointMake(80.0, 220.0);}];//第三個關鍵幀,從0.5*5.0秒開始,持續5.0*0.25=1.25秒[UIView addKeyframeWithRelativeStartTime:0.5 relativeDuration:0.25 animations:^{_imageView.center=CGPointMake(45.0, 300.0);}];//第四個關鍵幀:從0.75*5.0秒開始,持所需5.0*0.25=1.25秒[UIView addKeyframeWithRelativeStartTime:0.75 relativeDuration:0.25 animations:^{_imageView.center=CGPointMake(55.0, 400.0);}];} completion:^(BOOL finished) {NSLog(@"Animation end.");}];
options可以分為兩類
對于關鍵幀動畫也有一些動畫參數設置options,UIViewKeyframeAnimationOptions類型,和上面基本動畫參數設置有些差別,關鍵幀動畫設置參數分為兩類,可以組合使用:
常規動畫屬性設置(可以同時選擇多個進行設置)
UIViewAnimationOptionLayoutSubviews:動畫過程中保證子視圖跟隨運動。
UIViewAnimationOptionAllowUserInteraction:動畫過程中允許用戶交互。
UIViewAnimationOptionBeginFromCurrentState:所有視圖從當前狀態開始運行。
UIViewAnimationOptionRepeat:重復運行動畫。
UIViewAnimationOptionAutoreverse :動畫運行到結束點后仍然以動畫方式回到初始點。
UIViewAnimationOptionOverrideInheritedDuration:忽略嵌套動畫時間設置。
UIViewAnimationOptionOverrideInheritedOptions :不繼承父動畫設置或動畫類型。
動畫模式設置(同前面關鍵幀動畫動畫模式一一對應,可以從其中選擇一個進行設置)
UIViewKeyframeAnimationOptionCalculationModeLinear:連續運算模式。
UIViewKeyframeAnimationOptionCalculationModeDiscrete :離散運算模式。
UIViewKeyframeAnimationOptionCalculationModePaced:均勻執行運算模式。
UIViewKeyframeAnimationOptionCalculationModeCubic:平滑運算模式。
UIViewKeyframeAnimationOptionCalculationModeCubicPaced:平滑均勻運算模式。
注意:關鍵幀動畫有兩種形式,屬性值關鍵幀動畫,路徑關鍵幀動畫目前UIView還不支持。