IOS學習–畫一個邊緣漸層顏色的會自動旋轉的圓

來源:互聯網
上載者:User

在沒寫之前,先實踐一下!

沒怎麼接觸過CA,感覺對我來說還是蠻難的。

話說這個時間過渡的有點久。

中間因為有其他的事情 優先順序比這個我要做的HUD優先順序高。所以就一直拖著,放到現在才做好。

大該花了我兩天時間,從學習CA動畫,到去網上找代碼,貼代碼。然後學以致用……

總算搞定了。

這個過程受益匪淺!不僅學習了

CALayer

CABasicAnimation

也試著去自訂一個layer,然後操作layer完成動畫。

效果還是不錯的。

貼部分代碼 關於layer 旋轉 放縮 透明度等效果的動畫 函數吧!

//回到本質問題 :怎麼用畫一個邊緣漸層顏色的會自動旋轉的圓!
這個函數就可以幫你搞定了。用一個漸層顏色的圓作為你的layer圖。也就是你要旋轉的圖。然後調這個函數就轉了。。。
這個真的是我找到的最簡單最實用的辦法。

//rotation animation- (void) runSpinAnimationOnView:(CALayer*)layerToAnimate duration:(CGFloat)duration rotations:(CGFloat)rotations repeat:(float)repeat;{    CABasicAnimation* rotationAnimation;    rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];    rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 /* full rotation*/ * rotations * duration ];    rotationAnimation.duration = duration;    rotationAnimation.cumulative = YES;    rotationAnimation.repeatCount = repeat;    [layerToAnimate addAnimation:rotationAnimation forKey:@"rotationAnimation"];}
//你的layer 可以是一個圖然後通過調整透明度來實現閃爍(當然肯定有別的辦法啦)//flash animation-(void)opacityForever_Animation:(float)time withLayer:(CALayer *)layer{    CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"opacity"];    animation.fromValue=[NSNumber numberWithFloat:1.0];    animation.toValue=[NSNumber numberWithFloat:0.5];    animation.autoreverses=YES;    animation.duration=time;    animation.repeatCount=FLT_MAX;    animation.removedOnCompletion=NO;    animation.fillMode=kCAFillModeForwards;    [layer addAnimation:animation forKey:@"opacity"];}-(void)moveDuration:(float)time fromOffset:(float)fromValue withOffsetX:(float)x withLayer:(CALayer *)layer{    CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"transform.translation.x"];    animation.fromValue = [NSNumber numberWithFloat:fromValue];    animation.toValue=[NSNumber numberWithFloat:x];    animation.duration=time;    animation.removedOnCompletion=NO;    animation.fillMode=kCAFillModeForwards;    [layer addAnimation:animation forKey:@"transform.translation.x"];}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.