iOS動(dòng)畫(huà)效果和動(dòng)畫(huà)過(guò)程中的點(diǎn)擊事件

啊,開(kāi)始填坑。。。
主要是想說(shuō)CALayer的模型層(modelLayer)和展示層(presentationLayer)。
當(dāng)我們使用CALayer去做一些動(dòng)畫(huà)效果時(shí),你可能會(huì)發(fā)現(xiàn)你點(diǎn)擊正在動(dòng)畫(huà)的圖層觸發(fā)不了它對(duì)應(yīng)的方法,但是這個(gè)圖層卻是真真切切地在動(dòng),這個(gè)就和CALayer的模型層和展示層有關(guān)。
模型層M中保存著需要繪制的內(nèi)容和屬性,展示層P會(huì)在下次繪制時(shí)“詢問(wèn)”M如何繪制,而P繪制的過(guò)程(包括產(chǎn)生動(dòng)畫(huà)效果)是我們看到的現(xiàn)象。
簡(jiǎn)單地說(shuō),你看到的動(dòng)畫(huà)時(shí)M指揮P完成的。
那么我們?yōu)槭裁传@得不了點(diǎn)擊事件呢?
我們知道UIView是負(fù)責(zé)用戶交互的,Layer本身不具備用戶交互事件(你對(duì)View顯示上的操作其實(shí)最終操作的是Layer)。Layer產(chǎn)生的動(dòng)畫(huà),例如fromValue toValue確確實(shí)實(shí)是Layer在動(dòng),但在動(dòng)畫(huà)過(guò)程中M并沒(méi)有變(你可以當(dāng)做View的原始位置沒(méi)有變,動(dòng)的是Layer),所以相應(yīng)點(diǎn)擊事件的依舊是原來(lái)的位置。(而且在動(dòng)畫(huà)的過(guò)程中,一個(gè)CAAnimation加在了Layer上,此時(shí)的P繪制時(shí)會(huì)去詢問(wèn)A,動(dòng)畫(huà)完成后A從Layer移除掉,P才會(huì)向M詢問(wèn)怎么繪制)。

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

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

  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜,今天將帶大家一窺ios動(dòng)畫(huà)全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,699評(píng)論 6 30
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜,今天將帶大家一窺iOS動(dòng)畫(huà)全貌。在這里你可以看...
    F麥子閱讀 5,275評(píng)論 5 13
  • 前言 本文只要描述了iOS中的Core Animation(核心動(dòng)畫(huà):隱式動(dòng)畫(huà)、顯示動(dòng)畫(huà))、貝塞爾曲線、UIVie...
    GitHubPorter閱讀 3,753評(píng)論 7 11
  • 轉(zhuǎn)載:http://m.itdecent.cn/p/32fcadd12108 每個(gè)UIView有一個(gè)伙伴稱為l...
    F麥子閱讀 6,602評(píng)論 0 13
  • 書(shū)寫(xiě)的很好,翻譯的也棒!感謝譯者,感謝感謝! iOS-Core-Animation-Advanced-Techni...
    錢(qián)噓噓閱讀 2,444評(píng)論 0 6

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