对于在 UIView.animate 块内部或外部的循环?

Posted

技术标签:

【中文标题】对于在 UIView.animate 块内部或外部的循环?【英文标题】:For in loop inside or outside UIView.animate block? 【发布时间】:2017-11-28 15:26:19 【问题描述】:

以下功能之一是否比另一个功能更先进,或者在性能/最佳实践方面无关紧要?

1.
UIView.animate(withDuration: 1)
    for b in self.someArray
        b.frame.origin = self.myNewPosition
    


2.
for b in self.someArray
    UIView.animate(withDuration: 1)
        b.frame.origin = self.myNewPosition
    

【问题讨论】:

你都试过了吗?发生了什么? @rmaddy 我没有注意到函数中有任何副作用,但是我在代码中看到我在这部分工作不一致,我想知道是否有推荐的动画数组方法. @rmaddy 是正确的,您的选择是选项 1。 只要动画相同,就在动画块内循环。 如果有帮助,请接受答案:) 谢谢 @AamirR 我完全忘记了这个问题,谢谢:) 【参考方案1】:

选项 1 创建一个动画,所有更新的属性都一起动画。

选项 2 创建 X 个动画,每个动画都可以随心所欲。

如果您希望所有原点在相同的持续时间内同时更改,请使用选项 1。

如果您想为数组中的每个对象使用不同的动画,请使用选项 2。

【讨论】:

以上是关于对于在 UIView.animate 块内部或外部的循环?的主要内容,如果未能解决你的问题,请参考以下文章

UIView animate withDuration 不会在 iOS 9.3.5 上调用完成处理程序

在 awakeFromNib 上调用 UIView animate withDuration 不会执行动画

UIView.animate() 无法为视图设置动画的各种原因都有哪些?

“启动”并放下一个 UIView

UIView,动画,完成块,UIAlertView

为什么UIView.animate使用交互式控制器转换,但UIViewPropertyAnimator不支持?