CASpringAnimation使用和屬性解析

2021-07-11 08:59:41 字數 1512 閱讀 5404

caspringanimation

ios9

才引入的動畫類,它繼承於

cabaseanimation

,用於製作彈簧動畫效果。

首先來看乙個簡單的例子,鐘擺:

如果沒有阻力,將一直搖擺下去,如下圖:

如果是無摩擦力情況下,那麼就會類似於下圖的運動軌跡:

在真實的世界中,系統將由於摩擦力的存在而缺少動力並最終停止在自己的平衡點。

這種情況下,那麼就會類似於下圖的運動軌跡:

我們可能會注意到乙個鐘擺的過程,其實會涉及到很多因數。uikit能夠讓我們建立乙個簡單的彈性動畫,當我們使用uikit的彈性動畫方法時:

uiview.animatewithduration(duration: nstimeinterval,

delay: nstimeinterval,

usingspringwithdamping dampingratio: cgfloat,

initialspringvelocity velocity: cgfloat,

options: uiviewanimationoptions,

animations: () -> void,

completion: ((bool) -> void)?)

該方法建立彈性動畫時,我們只有usingspringwithdamping(阻尼係數)和initialspringvelocity(彈性的初始化速度)這兩個引數與彈性動畫相關。uikit在給定的時間內使系統以動態的方式調整所有的變數,uikit的彈性動畫看起來有點急促,少量的不自然。幸運的是,core animation為我們提供了caspringanimation類建立合適的彈性動畫效果,相當於渲染乙個合理的物理模仿看起來效果感覺就更加真實了。

屬性解析:

/** subclass for mass-spring animations. */

public class caspringanimation :cabasicanimation

}

下面使用caspringanimation

的乙個小demo:

//實現觸控螢幕,使紅色小方塊移動到對應的點,並且來回上下彈性運動。最好的方式理解屬性,就是改不同的值,多試試效果。

override func touchesbegan(touches:set, withevent event:uievent?)

jnwspringanimation

:該庫還提供了乙個

mac端的工具來幫助你除錯動畫效果,而不需要你在模擬器或是真機上不斷編譯、調整、編譯了。

facebook's pop

:乙個強大的動畫庫。

rbbanimation::

官方的反編譯版本,效果直追官方

。animationengine

:特點是像pop 一樣使用 cadisplaylink 實現動畫以及提供方便的block 介面。

table layout fixed 屬性的解說

table layout fixed 屬性的解說 如果想要乙個table固定大小,裡面的文字強制換行 尤其是在一長串英文文字,並且中間無空格分隔的情況下 以達到使過長的文字不撐破 的目的,一般是使用樣式 table layout fixed。但是在firefox下面,會有一些問題 firefox下,...

table layout fixed 屬性的解說

table layout fixed 屬性的解說 如果想要乙個table固定大小,裡面的文字強制換行 尤其是在一長串英文文字,並且中間無空格分隔的情況下 以達到使過長的文字不撐破 的目的,一般是使用樣式 table layout fixed。但是在firefox下面,會有一些問題 firefox下,...

DataList控制項屬性全解

datalist控制項 datalist控制項使用模板顯示資料來源中的資料項 屬性說明 alternatingitemstyle 獲取datalist控制項中交替項的樣式屬性。alternatingitemtemplate 獲取或設定datalist中交替項的模板 attributes 獲取web控...