啊,开始填坑。。。
主要是想说CALayer的模型层(modelLayer)和展示层(presentationLayer)。
当我们使用CALayer去做一些动画效果时,你可能会发现你点击正在动画的图层触发不了它对应的方法,但是这个图层却是真真切切地在动,这个就和CALayer的模型层和展示层有关。
模型层M中保存着需要绘制的内容和属性,展示层P会在下次绘制时“询问”M如何绘制,而P绘制的过程(包括产生动画效果)是我们看到的现象。
简单地说,你看到的动画时M指挥P完成的。
那么我们为什么获得不了点击事件呢?
我们知道UIView是负责用户交互的,Layer本身不具备用户交互事件(你对View显示上的操作其实最终操作的是Layer)。Layer产生的动画,例如fromValue toValue确确实实是Layer在动,但在动画过程中M并没有变(你可以当做View的原始位置没有变,动的是Layer),所以相应点击事件的依旧是原来的位置。(而且在动画的过程中,一个CAAnimation加在了Layer上,此时的P绘制时会去询问A,动画完成后A从Layer移除掉,P才会向M询问怎么绘制)。
iOS动画效果和动画过程中的点击事件
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言 本文只要描述了iOS中的Core Animation(核心动画:隐式动画、显示动画)、贝塞尔曲线、UIVie...
- 书写的很好,翻译的也棒!感谢译者,感谢感谢! iOS-Core-Animation-Advanced-Techni...