CAAnimation

序言

CAAnimation是一個抽象類,遵循了CAMediaTiming協議和CAAction協議!咱們不要直接使用CAAnimation類,而是使用其子類:app

  • CATransition:提供漸變效果,如推拉push效果,消退fade效果,揭開reveal效果
  • CAAnimationGroup:容許多個動畫同時播放
  • CABasicAnimation: 提供了對單一動畫的實現
  • CAKeyframeAnimation: 關鍵楨動畫,能夠定義動畫路線
  • CAPropertyAnimation:屬性動畫,一般不直接使用,而是使用CABasicAnimation子類

建立對象

咱們看到有一個工廠方法來建立CAAnimation對象,所以,咱們一般都使用這個方法來建立動畫:ide

固然不一樣類型的子類使用的方法不同,對於繼承於CAPropertyAnimation的子類,均可以經過屬性路徑來建立:動畫

遵照了CAMediaTiming協議

這個協議是是用於配置動畫的相關屬性的,英文部分是官方的註釋,中文部分爲筆者的理解,下面一一講解:ui

遵照了CAAction協議

這個協議只有一個方法,咱們能夠調用此方法來觸發指定的事件,這樣接收者就能夠接收到代理。this

CAAnimationDelegate代理

CAAnimation爲這麼個屬性:spa

咱們只要指定了代理,就能夠實現這兩個代理方法:代理

removedOnCompletion屬性

當咱們動畫完成時,若是但願動畫就自動移除的話,咱們能夠設置此屬性爲YES,默認值爲YES。若是咱們想要循環或者執行屢次動畫,就將此屬性設置爲NOcode

timingFunction屬性

這個屬性是用於指定動畫移動的步調是什麼樣式,好比線性。對象

關於CAMediaTimingFunction類,主要是這向個方法。當建立時,咱們+functionWithName:工廠方法來建立系統已經提供的樣式。繼承

其中這個name有這幾個變量對應的:

若是咱們想要讓其移動動畫是按貝塞爾曲線的路徑行動,那麼能夠用這兩個方法來建立:

相關文章
相關標籤/搜索