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
})
})
我正在尝试为按钮设置动画,使其向左倾斜 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
})
})