我在单击按钮时使用动画来变换按钮,因此能够使按钮变大。但是,我认为通过使用.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只是“在视觉上反转”,但不会更改实际的对象大小。

试试看

@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)
    })
}

10-08 17:47