【发布时间】:2017-04-25 11:14:19
【问题描述】:
我看过很多类似的帖子,但没有一个有效。
这是我目前的代码。
func startRotating(view : UIImageView, rotating : Bool) {
//Rotating the rotatingClockBarImage
UIView.animate(withDuration: 1.0, delay: 0.0, options: [.curveLinear], animations: {
view.transform = CGAffineTransform(rotationAngle: CGFloat.pi)
}, completion: {finished in
UIView.animate(withDuration: 1.0, delay: 0.0, options: [.curveLinear], animations: {
view.transform = CGAffineTransform(rotationAngle: 0)
}, completion: nil)
})//End of rotation
continueRotating(view: view)
}
最初的问题是我无法旋转完整的 360 度。我通过在完成中旋转一半和另一半来解决这个问题。
现在的问题是,一旦这个动画完成,就是这样。我试过把它放在一个while循环中,for循环,来回调用两个类似的函数。没有任何效果,它只会让我的应用程序冻结。
例如,在一个 for 循环中,它会运行 3 次,我放置了一个 print()。打印写入控制台三次,但动画只发生一次。正因为如此,我认为动画甚至在它开始之前就被切断了,最后的旋转是唯一可以播放的。所以我需要找到一种方法让它每次旋转都播放一遍。
在游戏应用程序的旧版 Xcode 中,Apple 让他们的飞机如此轻松地旋转,这应该不难。我试图避免删除并重新安装旧版本,以便查看该代码。
【问题讨论】:
标签: ios swift animation uiview rotation