写蛇。根据文档,当动画持续时间<=0时,动画不会发生。但它是动画的。
let dur = abroad ? -1 : speed
UIView.animate(withDuration: dur) {
for i in 0..<(self.snakes.count - 1) {
let snake = self.snakes[self.snakes.count - i - 2]
let temp = oldFrame
oldFrame = snake.frame
snake.frame = temp
if snake.frame.intersects(main.frame) {
self.gameOver = true
print("game over!!!!!")
}
}
if self.abroad {
print(dur) // -1
}
}
当我这样做时
var dur:TimeInterval = 0
没有动画,但是像这样:
var dur:TimeInterval = 0
if !abroad {
dur = TimeInterval(speed)
}
在国外== false时也会发生动画。我不知道出了什么问题。在此先感谢您的帮助
我确认至少在 iOS 13.5 上测试时不符合文档中指定的行为
animate(withDuration:animations:)
在下面的示例中,动画在值小于零时发生,但在值为零时不动画 (
let duration: TimeInterval = 0
)解决方案:使用 0 禁用动画