我需要在 iOS 3.2 上实现非常自定义的动画所以,在 4.0 之前我既不能使用块动画也不能使用 UIKit 动画。我尝试使用核心动画。
这是我的代码:
[CATransaction begin];
[CATransaction setAnimationDuration: 3.0];
[CATransaction setDisableActions: YES];
someView.frame = CGRectMake(endX, 0, endWidth, height);
// a lot of another property changes
[CATransaction commit];
不幸的是,它不起作用:视图立即改变大小/不透明度,没有任何动画。
这是我的尝试:
- 我将新框架设置为不是查看而是设置到其层(someView.layer.frame = ...) - 更糟糕的是,因为视图的子视图没有调整大小。
- 我将禁用操作选项设置为是和否。
解决方案要求:
- 必须支持 iOS 3.2(无块)。
- 动画必须应用于不同的视图(因此,应用于不同的层)。
- 动画曲线已经够难了,所以我不能使用预定义的动画曲线(或者,通过 CA 语言,MediaTimingFunction)。