ios - 并行多个快速动画不起作用

标签 ios animation swift

我有这段代码为 View 中的一些元素(总共 3 个)设置动画。

 for element in elements{          
        if element.value != radians {
            UIView.animateWithDuration(0.99,
                animations: {
                    element.transform = CGAffineTransformMakeRotation(CGFloat(radians))
                }, completion: {
                    finished in
                    element.value = radians
            })
        }
    }

当 2 个或更多元素需要动画时(UIView.animateWithDuration 被相继调用 2 次或多次),只有一个元素在动画,并且动画非常不稳定。我知道我应该在动画 block 中写下所有内容,但我不知道该怎么做。 请帮助我。

最佳答案

只需将 for 循环放在动画 block 内即可。

UIView.animateWithDuration(0.99, 
  animations: {
    for element in elements {
      if element.value != radians {
          element.transform = CGAffineTransformMakeRotation(CGFloat(radians))
      }
    }
  }, completion: { _ in 
    element.value = radians
  })

关于ios - 并行多个快速动画不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26438553/

相关文章:

ios - 点击区域时不显示本地通知

xcode - 从选项卡 Controller 中删除选项卡时出现自动布局问题

ios - 将 UTC 日期格式转换为本地 nsdate

css - 没有 CSS 和 JS 的 Svg 动画

javascript - 处理旅行动画

ios - 动画 UICollectionViewCell 时 bounds.size 和 frame.size 之间的相关性是什么

ios - 如何使用 Alamofire 发布复合关键数据参数?

iphone - 如何知道UIImageView移动的当前位置?

ios - 为什么我会收到 Apple Mach-O 链接器错误?

ios - 从自定义 UIView 呈现 View Controller (xib 文件)