1

我正在使用 UIKit 动态为 UIView 设置动画。随着UIView被拖动(响应物理等),背景视图(它是超级视图)需要淡出,有些UILabel需要淡入。到目前为止,我已经通过向适当的UIDynamicBehavior手动添加块来完成此操作去减少superview的alpha并增加UILabel'salpha。只要我想要一个线性交叉淡入淡出,它就可以正常工作,即:superview(1 - a) + label(a)。但实际上,我的动画需要更多参与。类似于以下内容:

  1. 超级视图开始淡出,比如 0.2 alpha
  2. 此时标签开始以更快的速度淡入(如果您愿意,可以使用不同的计时功能)。
  3. 动画结束时,superview 位于 alpha = 0,label 位于 alpha = 1。

当然,我可以把它计算成一个公式,并据此手动更新 alpha 值。但是我想知道是否有一种方法可以创建带有一些动画的 CA 动画组或 CATransaction,将其应用于适当的图层,然后逐步遍历动态行为的动作块中的帧。

例如,该CAMediaTiming协议具有timeOffset可用于及时启动动画偏移的协议。我正在考虑类似的事情,但这实际上会使动画始终“暂停”,我可以告诉它跳转到(插值)一个特定的时间点。但是,我不确定是否有任何这样的属性(如timeOffset)或方法来做到这一点。

4

0 回答 0