添加一个按钮来控制图层颜色-intel单cpu芯片组上电时序
图7.1t添加一个按钮来控制图层颜色这其实就是所谓的隐式动画。之所以叫隐式是因为我们并没有指定任何动画的类型。我们仅仅改变了一个属性,然后CoretAnimation来决定如何并且何时去做动画。CoretAnimaiton同样支持显式动画,下章详细说明。但当你改变一个属性,CoretAnimation是如何判断动画类型和持续时间的呢?实际上动画执行的时间取决于当前事务的设置,动画类型取决于图层行为。事务实际上是CoretAnimation用来包含一系列属性动画集合的机制,任何用指定事务去改变可以做动画的图层属性都不会立刻发生变化,而是当事务一旦提交的时候开始用一个动画过渡到新值。事务是通过tCATransactiont类来做管理,这个类的设计有些奇怪,不像你从它的命名预期的那样去管理一个简单的事务,而是管理了一叠你不能访问的事务。 tCATransactiont没有属性或者实例方法,并且也不能用t+alloct和t- initt方法创建它。但是可以用t+begint和t+committ分别来入栈或者出栈。任何可以做动画的图层属性都会被添加到栈顶的事务,你可以通过t+setAnimationDuration:t方法设置当前事务的动画时间,或者通过t+animationDurationt方法来获取值(默认0.25秒)。 CoretAnimation在每个runtloop周期中自动开始一次新的事务(runtloop是iOS负责收集用户输入,处理定时器或者网络事件并且重新绘制屏幕的东西),即使你不显式的用t[CATransactiontbegin]t开始一次事务,任何在一次runtloop循环中属性的改变都会被集中起来,然后做一次0.25秒的动画。 ios核心动画高级技巧165事务
20.35MB
文件大小:
评论区