屬性動畫->通過改變圖層或者視圖上面的屬性值(支持動畫的屬性)產(chǎn)生的動畫
屬性動畫的常用方法屬性:
1、初始化+(instancetype)animationWithKeyPath:(nullableNSString *)path
path需要產(chǎn)生動畫的屬性
如:中心點->移動
2梧兼、keyPath描述動畫的屬性
可以改變屬性的動畫:
transform.scale =比例轉(zhuǎn)換
transform.scale.x
transform.scale.y
transform.rotation.z
opacity =透明度
zPosition
backgroundColor背景顏色
cornerRadius圓角
borderWidth邊框的寬度
bounds
contents內(nèi)容
contentsRect
frame
hidden
masksToBounds
opacity
position
shadowColor
shadowOffset
shadowOpacity
shadowRadius
基礎(chǔ)動畫:CABasicAnimation
介紹:通過改變某個屬性的值到某個值->只能設(shè)置兩個值->產(chǎn)生的動畫
fromValue開始值如果不設(shè)置不會返回到初始位置
toValue結(jié)束值
byValue通過哪個值
核心動畫:CAAnimation是所有動畫的父類
1、CAMediaTiming媒體事件類協(xié)議核心動畫關(guān)于時間類的控制是遵守了CAMediaTiming中的協(xié)議內(nèi)容
(1)beginTime動畫開始的時間默認為0
(2)duration動畫的持續(xù)時間默認為0持續(xù)時間受速度的影響
實際的動畫完成時間=持續(xù)時間/速度
(3)speed動畫播放的速度默認為1速度設(shè)置成0可以暫停動畫
speed2秒duration60秒動畫真正播放完成的時間30秒
(4)timeOffset動畫播放時間的偏移量
(5)repeatCount動畫的循環(huán)次數(shù)默認是0只播放一次
repeatDuration動畫循環(huán)的持續(xù)時間只能設(shè)置其中的一個屬性
(6)autoreverses是否以動畫的形式返回到播放之前的狀態(tài)
(7)fillMode設(shè)置當(dāng)前對象在非活動時間段的狀態(tài)
要想fillMode有效需設(shè)置removedOnCompletion =NO
kCAFillModeForwards當(dāng)動畫結(jié)束后御毅,layer會一直保持著動畫最后的狀態(tài)
kCAFillModeBackwards立即進入動畫的初始狀態(tài)并等待動畫開始
kCAFillModeBoth動畫加入后開始之前l(fā)ayer處于動畫初始狀態(tài)動畫結(jié)束后layer保持動畫最后的狀態(tài)
kCAFillModeRemoved默認值動畫結(jié)束后layer會恢復(fù)到之前的狀態(tài)
2根欧、CAAnimation動畫屬性方法介紹
(1)初始化方法animation
(2)timingFunction速度控制類控制動畫運行的節(jié)奏
functionWithName:初始化
kCAMediaTimingFunctionLinear勻速
kCAMediaTimingFunctionEaseIn慢進快出
kCAMediaTimingFunctionEaseOut 快進慢出
kCAMediaTimingFunctionEaseInEaseOut慢進慢出中間加速
kCAMediaTimingFunctionDefault 默認
(3)delegate
(4)removedOnCompletion動畫完成的時候是否移除動畫效果
(5)代理方法
- (void)animationDidStart:(CAAnimation *)anim
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag