使用步幅旋转对象

Use stride to rotate object

我想使用跨步语法跨步旋转对象。盒子应该经过 3 次迭代并旋转 270 度。我不相信我下面的一些代码逐字匹配语法。仅供参考。

Var box = UIView()

Override func viewdidload(){
Super.viewdidload()

For rotate in Stride(from : 0, to: 3, by +1 ) {

box.transform = box.transform.rotatedby( .pi/2)
}}

Swift, Stirde, loop, viewdidload

你不能使用循环来做到这一点,因为 UI 只会在循环完成后更新

可以用UIView.animate做动画,做递归实现n次动画

func rotateBox(count: Int) {
        if count > 0 {
            UIView.animate(withDuration: 1, animations: {
                self.box.transform = self.box.transform.rotated(by: .pi/2)
            }, completion: { _ in
                self.rotateBox(count: count - 1)
            })
        }
    }