關(guān)于動(dòng)畫的一些基礎(chǔ)知識

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)畫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容