IOS Animation-CABasicAnimation、CAKeyFrameAnimation詳解&區別&聯絡,cabasicanimation詳解

來源:互聯網
上載者:User

IOS Animation-CABasicAnimation、CAKeyFrameAnimation詳解&區別&聯絡,cabasicanimation詳解

1.先看看網上流傳的他們的繼承圖:

   從上面可以看出CABasicAnimation與CAKeyframeAnimation都繼承於CAPropertyAnimation。而CAPropertyAnimation提供了基本的動畫屬性設定keyPath、additive、cumulative。

 

2.詳解

   1)CABasicAnimation

   CABasicAnimation提供了最基礎的動畫屬性設定,是簡單的keyframe動畫效能。CABasicAnimation可以看做是一種CAKeyframeAnimation的簡單動畫,因為它只有頭尾的主要畫面格(keyframe)。

   我們可以建立一個CABasicAnimaiton的對象通過keyPath的方式。CABasicAnimation提供了fromValue、toValue、byValue的設定(插值)。它們三個屬性定義了一個動畫的軌跡,並且最少兩個值不可為空。

   當設定了CABasicAnimation的起點與終點值後,中間的值都是通過插值方式計算出來的,插值計算是通過timingFunction來指定,timingFunction預設為空白,使用liner(勻速運動)。例如,當我們設定了一個position的動畫,設定了開始值PointA與結束值PointB,它們的運動先計算PointA與PointB的中間運動值PointCenter,而PointCenter是由timingFunction來指定值的,並且動畫預設是直線勻速運動的。

 

   2)CAKeyFrameAnimation

   CAKeyframeAnimation提供了通用的keyframe動畫功能層的屬性給我們使用,它允許我們設定一個特定的數組,這個數組是動畫在運動時的值。也就是說,CAKeyframeAnimation支援動畫的多個值設定。

   CAKeyFrameAnimation可以用兩種方法定義:CGPath、數組values。

   CGPath只對layer的anchorPoint或position屬性起作用。values比較靈活。keyTimes是一個選擇性參數,它可以定義keyframe的每個部分,其值是0.0到1.0。keyTimes數組中的每個時間值都對應values中的每一幀,當keyTimes沒有設定的時候,各個keyframe的時間是平分的。keyTimes數組中的每個元素定義了相應的keyframe的期間值作為動畫的總期間的一小部分,每個元素的值必須大於、或等於前一個值。

 

3.區別於聯絡

   1)CABasicAnimation可看做是最多隻有2個主要畫面格的CAKeyframeAnimation

  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.