1

目前我正在阅读 Matt Neuburg 的非常有趣的书。但我坚持这一刻:

在最简单的情况下,您只需启动动画并退后,正如我之前演示的:

let anim = UIViewPropertyAnimator(duration: 1, curve: .linear) {
    self.v.backgroundColor = .red    
}    
 anim.startAnimation()

在该代码中,UIViewPropertyAnimator 对象 anim 被实例化为局部变量,我们没有将其保留在持久属性中;但是动画有效,因为动画服务器保留了它。

当我们以上述方式使用动画时,我们是否需要在持久属性中保留动画?如果我们不将动画保留在持久属性中,为什么动画(在其他情况下似乎)不应该工作?我想我不明白还有谁读过这本书?

4

1 回答 1

2

Matt 的观点是,您不需要保留对它的引用来完成动画。他并不是说您不能保留参考资料,只是说您不必保留。

你问:

当我们以[上述]方式使用动画时,我们是否需要在持久属性中保留动画?

不,您无需“保留”它即可继续制作动画。

您可能会问为什么要保留引用:如果您想在动画开始后暂停或停止它、擦洗它或其他什么,您可能会这样做。

底线,如果您出于其他原因需要参考,很好,请保留对它的参考。否则,只需将其设为局部变量并启动它即可。

如果我们不将动画保留在持久属性中,为什么动画(在其他情况下似乎)不应该工作?

他不是这么说的。他说的恰恰相反,即您不必为动画继续保持强烈的引用。如果您出于其他原因需要它,请保留参考,但不仅仅是为了确保动画继续播放。

于 2020-08-05T03:59:11.870 回答