如何在IOS Swift 3中连续旋转视图

时间:2018-02-08 16:19:25

标签: ios animation swift3

我将回答我自己的问题,分享我对这段代码的解决方案。

如何在IOS Swift 3中以恒定速度连续旋转任何视图?

1 个答案:

答案 0 :(得分:-1)

这是一个以恒定速度连续旋转视图的简单类。在这个例子中,1秒内完成1次完整巡视。

class Rotator
{
    private static var some_view : UIView = UIView()
    private static var some_timer : Timer = Timer()

    class func Rotate(some_view : UIView)
    {
        self.some_view = some_view
        some_timer.invalidate()
        some_timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(rotateView), userInfo: nil, repeats: true)
    }

    @objc private class func rotateView()
    {
        UIView.animate(withDuration: 1, delay: 0, options: .curveLinear, animations: { () -> Void in
            some_view.transform = some_view.transform.rotated(by: CGFloat(Double.pi))
        })
    }
}

用法是:

myImage = UIImageView()
Rotator.Rotate(some_view: myImage)

希望这有帮助。