KeyPath: 決定基礎(chǔ)動(dòng)畫的類型
position:改變位置
opacity:改變透明度
transform.scale:等比例縮放
fromValue:動(dòng)畫的起始狀態(tài)值
autoreverse:當(dāng)動(dòng)畫執(zhí)行到toValue指定的狀態(tài)是從toValue的狀態(tài)還是直接跳到fromValue的狀態(tài)再執(zhí)行一遍
fileMode:fillMode的作用就是決定當(dāng)前對象是過了非active時(shí)間段的行為,非active時(shí)間段是指動(dòng)畫開始之前以及動(dòng)畫結(jié)束之后。如果是一個(gè)動(dòng)畫CAAninmation,則需要將其removedOnCompletion置為NO,不然fillMode不起作用
kCAFillModeRemoved:是個(gè)默認(rèn)值,當(dāng)動(dòng)畫開始前和動(dòng)畫結(jié)束后,動(dòng)畫對Layer都沒有影響,動(dòng)畫結(jié)束后,layer會恢復(fù)到之前的狀態(tài)
kCAFillModeForwards 當(dāng)動(dòng)畫結(jié)束后,layer會一直保持動(dòng)畫的最后狀態(tài)
kCAFillModebBackwards:在動(dòng)畫開始前,只要將動(dòng)畫加入一個(gè)Layer,layer便立即進(jìn)入動(dòng)畫的初始狀態(tài),因?yàn)橛锌赡艹霈F(xiàn)fromValue不會目前l(fā)ayer的初始狀態(tài)的情況,如果fromValue就是Layer當(dāng)前的狀態(tài),這個(gè)參數(shù)就沒太大的意義
kCAFillModeBoth 動(dòng)畫加入后開始之前,layer便處于動(dòng)畫的初始狀態(tài),動(dòng)畫結(jié)束后Layer保持動(dòng)畫最后的狀態(tài)
KVO模式
[self.imageT setValue:@(0.5) forKey:@"transform.scale"];
key的值可參照官方文檔給的屬性來寫,注意:不要亂寫屬性,也許會出現(xiàn)迷之BUG

PS 核心動(dòng)畫只作用在layer,核心動(dòng)畫看到的都是假象,并沒有改變UIView的真是位置
如果不與用戶進(jìn)行交互可以用核心動(dòng)畫(位置沒變,點(diǎn)擊不了相應(yīng)的區(qū)域),與用戶交互用UIView動(dòng)畫