在 iOS 中,您可以使用动画块为视图对象设置动画:
[UIView animateWithDuration:1.0 animations:^{
firstView.alpha = 0.0;
secondView.alpha = 1.0;
}];
我们这里有一个代码块,它描述了动画完成后视图属性最终会看到什么。
这是如何运作的?
我可以理解(我认为)如果这是使用某种声明性格式完成的,但从它的外观来看,动画块只是一段可能必须执行的常规代码,检查结果,然后有人将其转码为实际执行动画的低级图形代码。
该块是否实际执行(或以某种方式进行了逆向工程),如果是,何时执行?
如果这段代码是在动画开始之前执行的,那么为什么对引用的视图属性的更改没有立即反映呢?
如果我将代码放入不更改视图属性但执行其他操作的块中会发生什么?