美文网首页
iOS动画效果和动画过程中的点击事件

iOS动画效果和动画过程中的点击事件

作者: 举个栗子wow | 来源:发表于2017-03-19 19:30 被阅读234次

    啊,开始填坑。。。
    主要是想说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动画效果和动画过程中的点击事件

          本文链接:https://www.haomeiwen.com/subject/wjapgttx.html