在iOS --動畫總結(jié) ----一中討論了CAAnimation的派生類CATransition,接下來再討論下剩下的幾個吧!
1.1CABaseAnimation:
??? 有三個property,分別是
? ? @property(nullable, strong) id fromValue;
??? @property(nullable, strong) id toValue;
??? @property(nullable, strong) id byValue;
??? 其他的屬性都是繼承自CAAnimation的,在上篇已經(jīng)討論過了.
? ? 1.2可以用+ (instancetype)animationWithKeyPath:(nullable NSString *)path來設(shè)置動畫,path的值分別有:
*?? transform.scale = 比例轉(zhuǎn)換
*?? transform.scale.x = 闊的比例轉(zhuǎn)換?
* ? transform.scale.y = 高的比例轉(zhuǎn)換
*?? transform.rotation.z = 平面圖的旋轉(zhuǎn)
*?? opacity = 透明度
*?? margin
*?? zPosition
*?? backgroundColor 背景顏色
*?? cornerRadius 圓角
*? ? borderWidth
* ? bounds
* ? contents
*?? contentsRect
*?? cornerRadius
*?? frame
*? ? hidden
*? ? mask
*? ? masksToBounds
*? ? opacity
*? ? position
*? ? shadowColor
*? ? shadowOffset
*? ? shadowOpacity
*? ? shadowRadius
?? 示例:1.1

動畫效果:1.2

2.1CAKeyframeAnimation:
??? property分別有:
??? @property(nullable, copy) NSArray *values;是整個動畫過程中的關(guān)鍵幀點,需要注意的是:起點必須作為values的第一個值
? ? @property(nullable) CGPathRef path;作用于values是相似的,同樣是用于指定動畫的路徑的,需要注意的是:當(dāng)同時指定values和path時,values將會被覆蓋,也就是失效.
??? @property(nullable, copy) NSArray*keyTimes; 默認(rèn)是傳遞的是一個數(shù)組對象,用于指定每段子路徑的時間,如果沒有設(shè)置,則默認(rèn)為每段子路徑的時間都是相等的,需要注意的是:該數(shù)組第一個元素和最后元素必須為0和1(否則開始的時候?qū)S式前進(jìn),結(jié)束的時候達(dá)不到預(yù)期的結(jié)果) ?
? ? @property(copy) NSString *calculationMode;決定了對象在每個子路徑下是跳著走還是勻速走,可供選擇的值有
? ? kCAAnimationLinear//線性
??? constkCAAnimationDiscrete//離散,無中間過程,但keyTimes設(shè)置的時間依舊生效,物體跳躍地出現(xiàn)在各個關(guān)鍵幀上
? ? kCAAnimationCubicPaced//平均,keyTimes跟timeFunctions失效?
? ? kCAAnimationCubic//平均,同上
? ? kCAAnimationPaced//平均,同上
? ? 例如:2.1

1.1
動畫效果如下:2.2

2.2CAAnimationGroup
??? 用來保存一組動畫,還是先看屬性:
? ? ? ? animations:用來保存一組動畫對象的NSArray,默認(rèn)情況下,一組動畫對象是同時運行的,也可以通過設(shè)置動畫對象的beginTime屬性來更改動畫的開始時間


??? 這是demo詳情??