在iOS --動(dòng)畫總結(jié) ----一中討論了CAAnimation的派生類CATransition,接下來(lái)再討論下剩下的幾個(gè)吧!
1.1CABaseAnimation:
??? 有三個(gè)property,分別是
? ? @property(nullable, strong) id fromValue;
??? @property(nullable, strong) id toValue;
??? @property(nullable, strong) id byValue;
??? 其他的屬性都是繼承自CAAnimation的,在上篇已經(jīng)討論過(guò)了.
? ? 1.2可以用+ (instancetype)animationWithKeyPath:(nullable NSString *)path來(lái)設(shè)置動(dòng)畫,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
動(dòng)畫效果:1.2
2.1CAKeyframeAnimation:
??? property分別有:
??? @property(nullable, copy) NSArray *values;是整個(gè)動(dòng)畫過(guò)程中的關(guān)鍵幀點(diǎn),需要注意的是:起點(diǎn)必須作為values的第一個(gè)值
? ? @property(nullable) CGPathRef path;作用于values是相似的,同樣是用于指定動(dòng)畫的路徑的,需要注意的是:當(dāng)同時(shí)指定values和path時(shí),values將會(huì)被覆蓋,也就是失效.
??? @property(nullable, copy) NSArray*keyTimes; 默認(rèn)是傳遞的是一個(gè)數(shù)組對(duì)象,用于指定每段子路徑的時(shí)間,如果沒有設(shè)置,則默認(rèn)為每段子路徑的時(shí)間都是相等的,需要注意的是:該數(shù)組第一個(gè)元素和最后元素必須為0和1(否則開始的時(shí)候?qū)?huì)跳躍式前進(jìn),結(jié)束的時(shí)候達(dá)不到預(yù)期的結(jié)果) ?
? ? @property(copy) NSString *calculationMode;決定了對(duì)象在每個(gè)子路徑下是跳著走還是勻速走,可供選擇的值有
? ? kCAAnimationLinear//線性
??? constkCAAnimationDiscrete//離散,無(wú)中間過(guò)程唆姐,但keyTimes設(shè)置的時(shí)間依舊生效,物體跳躍地出現(xiàn)在各個(gè)關(guān)鍵幀上
? ? kCAAnimationCubicPaced//平均奉芦,keyTimes跟timeFunctions失效?
? ? kCAAnimationCubic//平均,同上
? ? kCAAnimationPaced//平均仗阅,同上
? ? 例如:2.1
1.1
動(dòng)畫效果如下:2.2
2.2CAAnimationGroup
??? 用來(lái)保存一組動(dòng)畫,還是先看屬性:
? ? ? ? animations:用來(lái)保存一組動(dòng)畫對(duì)象的NSArray,默認(rèn)情況下减噪,一組動(dòng)畫對(duì)象是同時(shí)運(yùn)行的短绸,也可以通過(guò)設(shè)置動(dòng)畫對(duì)象的beginTime屬性來(lái)更改動(dòng)畫的開始時(shí)間
??? 這是demo詳情??