如何[UIView的beginAnimations]工作?(How does [UIView beg

2019-08-02 17:39发布

我想知道动画中可可触摸的工作方式。 例如:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];

view1.alpha = 1.0;
view2.frame.origin.x += 100;

[UIView commitAnimations];

如何UIView跟踪变化的两个视图属性?

我怀疑志愿被使用,但它真的观察其变化对之间的每一个意见beginAnimationscommitAnimations电话吗?

任何有识之士将不胜感激!

Answer 1:

简单解释:

所有视图所有动画都在一个组,在处理beginAnimations:context:将推动新的积极CAAnimationGroup在堆栈上,并commitAnimations将弹出当前活动的动画组。

如果在堆栈上的活动动画组,那么动画属性的所有制定者将创建CAAnimation子类的实例来处理该财产,然后添加到活动动画组。

当最后一个动画被弹出,这是重播。



Answer 2:

我相信这是刚刚超过老CoreAnimation调用的包装。 看看进入CoreGraphics中的API,你可以看到,有一些必须设置成一个字典多个按键,而这些按键提供起止值。



文章来源: How does [UIView beginAnimations] work?