.Repeat .AutoReverse 不起作用
.Repeat .AutoReverse not working
我正在使用动画在单击按钮时变换按钮,我能够使按钮变大。但是,我认为通过使用 .Repeat 和 .Autoreverse,按钮会恢复到正常状态。 (比例 1.0)但事实并非如此!也许我误解了我阅读的关于 .AnimateWithDuration
??
的教程和问题
这是我正在使用的代码:
let button = sender as! UIButton
UIView.animateWithDuration(1.0, delay: 0.6,
options: [.Repeat, .Autoreverse, .AllowUserInteraction],
animations:{
button.transform = CGAffineTransformMakeScale(1.2, 1.2)
}, completion: nil)
在另一个问题中,我看到可以通过添加 .AllowUserInteraction 来解决问题,但事实并非如此。
我不知道这是否重要,但这段代码包含在触摸事件中。
@IBAction func addButtonClicked(sender: AnyObject) {}
这里可能发生了什么?这不是你应该如何反转动画吗?
在动画结束时,您应该重置对象的大小。
.autoreverse
只是"reverse visually",但不会改变实际的对象大小。
试试这个。
@IBAction func prss(sender: AnyObject) {
let btt = sender as! UIButton
UIView.animate(withDuration: 1.0, delay: 0.6, options: [.autoreverse, .allowUserInteraction], animations:{
btt.transform = CGAffineTransform(scaleX: 5.0, y: 5.0)
}, completion: { (finished) in
btt.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
})
}
我正在使用动画在单击按钮时变换按钮,我能够使按钮变大。但是,我认为通过使用 .Repeat 和 .Autoreverse,按钮会恢复到正常状态。 (比例 1.0)但事实并非如此!也许我误解了我阅读的关于 .AnimateWithDuration
??
这是我正在使用的代码:
let button = sender as! UIButton
UIView.animateWithDuration(1.0, delay: 0.6,
options: [.Repeat, .Autoreverse, .AllowUserInteraction],
animations:{
button.transform = CGAffineTransformMakeScale(1.2, 1.2)
}, completion: nil)
在另一个问题中,我看到可以通过添加 .AllowUserInteraction 来解决问题,但事实并非如此。
我不知道这是否重要,但这段代码包含在触摸事件中。
@IBAction func addButtonClicked(sender: AnyObject) {}
这里可能发生了什么?这不是你应该如何反转动画吗?
在动画结束时,您应该重置对象的大小。
.autoreverse
只是"reverse visually",但不会改变实际的对象大小。
试试这个。
@IBAction func prss(sender: AnyObject) {
let btt = sender as! UIButton
UIView.animate(withDuration: 1.0, delay: 0.6, options: [.autoreverse, .allowUserInteraction], animations:{
btt.transform = CGAffineTransform(scaleX: 5.0, y: 5.0)
}, completion: { (finished) in
btt.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
})
}