Xcode 9 - 尝试为 UIView 设置两次动画

Xcode 9 - Trying to animate the UIView twice

我正在尝试为按钮设置动画,使其向左倾斜 pi/5,然后向右倾斜相同的量,以便它回到原来的位置(我试图让按钮出现好像在颤抖)

但是,Xcode 剪掉了动画,因为它意识到按钮总体上不会改变角度。这是当前代码 - 如果有人对动画按钮来回摇动有任何建议,我们将不胜感激。

for i in 0...8 {

if pressedArray[i] == true {

    self.panlButtons[i].backgroundColor = UIColor.clear

    UIView.animate(withDuration: 1, animations:{

        self.panlButtons[i].backgroundColor = self.wrongColour
        self.panlButtons[i].transform = CGAffineTransform(rotationAngle: CGFloat.pi / -5)

    })


    UIView.animate(withDuration: 1, animations:{

        self.panlButtons[i].backgroundColor = self.wrongColour
        self.panlButtons[i].transform = CGAffineTransform(rotationAngle: CGFloat.pi / 5)

    }, completion: { finished in


        self.panlButtons[i].backgroundColor = self.notPressedColour

    })

代码解释: pressedArray[] 是一个 Bool 数组,指示哪个按钮被按下 panlButtons[] 是一个按钮数组 从0-8的for循环是因为只有8个按钮

在第一个动画完成后移动下一个动画,如下图

UIView.animate(withDuration: 1, animations:{
    self.panlButtons[i].backgroundColor = self.wrongColour
    self.panlButtons[i].transform = CGAffineTransform(rotationAngle: CGFloat.pi / -5)
}, completion: {
    UIView.animate(withDuration: 1, animations:{
        self.panlButtons[i].backgroundColor = self.wrongColour
        self.panlButtons[i].transform = CGAffineTransform(rotationAngle: CGFloat.pi / 5)
    }, completion: { finished in
        self.panlButtons[i].backgroundColor = self.notPressedColour
    })
})