按钮背景颜色动画禁用触摸(IOS)

Posted

技术标签:

【中文标题】按钮背景颜色动画禁用触摸(IOS)【英文标题】:Button background color animation disable touch (IOS) 【发布时间】:2016-03-02 11:49:11 【问题描述】:

我正在开发一个读取 QR 码的 Swift 应用程序。当应用程序识别出二维码时,它需要开始为按钮的背景颜色设置动画以吸引用户的注意力。动画按预期工作,但按钮似乎不再响应触摸事件。如果我禁用动画,按钮将正常工作。我应该如何着手解决这个问题?谢谢!

动画代码如下:

var getCoordButtonAnimationRunning = false
let secondBackgroundColor = UIColor(red: 137.0/255.0, green: 205.0/255.0, blue: 237.0/255.0, alpha: 1.0)
func animateCoordButton() 
    if !getCoordButtonAnimationRunning && !initiatedAnimationStop 
        getCoordButtonAnimationRunning = true

        UIView.animateWithDuration(0.5, delay: 0.0, options: [.Autoreverse, .Repeat],
            animations: 
                self.getCoordinatesButton.backgroundColor = self.secondBackgroundColor
            ,
            completion:  finished in
                UIView.animateWithDuration(0.5, delay: 0.0, options: [],
                    animations: 
                        self.getCoordinatesButton.backgroundColor = self.getCoordinatesButtonColor
                    ,
                    completion:  finished in
                        self.getCoordButtonAnimationRunning = false
                        self.initiatedAnimationStop = false
                    )
            )
    


var initiatedAnimationStop = false
func stopAnimatingCoordButton() 
    if !initiatedAnimationStop 
        initiatedAnimationStop = true
        getCoordinatesButton.layer.removeAllAnimations()
    

【问题讨论】:

【参考方案1】:

您需要在动画中添加 .AllowsUserInteraction 选项。默认情况下,动画视图会禁用用户交互。

【讨论】:

以上是关于按钮背景颜色动画禁用触摸(IOS)的主要内容,如果未能解决你的问题,请参考以下文章

禁用为按钮设置可检查 QPushbutton 的背景颜色

iOS:禁用时的 UIButton 标题颜色

在 iOS 中使用动画更改标签背景颜色

如何为 QPushButton 的背景颜色设置动画(动态更改按钮颜色)

如何使用 QSS 为禁用的按钮设置不同的背景颜色?

如何在启动动画期间更改 iOS 应用程序图标背景颜色?