【问题标题】:Custom UIButton class with animation swift带有动画的自定义 UIButton 类
【发布时间】:2018-12-11 13:15:30
【问题描述】:

是否可以使用 点击动画 创建一个 UIButton 类,该类会在用户每次触摸自动调用 > 按钮?

import UIKit

class AnimatedButton: UIButton {

@objc private func buttonClicked(sender: UIButton) {
    sender.transform = CGAffineTransform(scaleX: 0.6, y: 0.6)

    // animation ...

    }
}

所以我不想在必须调用 button.buttonclicked() 的 ViewController 中创建操作。每次我使用这个类时,这应该会自动发生。

有没有可能做这样的事情?

【问题讨论】:

    标签: ios swift animation uibutton


    【解决方案1】:

    当您点击按钮时,下面的代码将调用 animate 方法并执行动画。当您想在按钮上执行动画时,只需将 AnimatedButton 类指定为 UIButton 的自定义类:

    class AnimatedButton: UIButton {
    
        override func draw(_ rect: CGRect) {
    
            self.addTarget(self, action: #selector(animate), for: .touchUpInside)
        }
    
        @objc func animate() {
    
            self.transform = CGAffineTransform(scaleX: 0.6, y: 0.6)
    
        }
    }
    

    【讨论】:

    • 感谢这两种解决方案都有效!不幸的是,我只能接受一个答案……祝你有美好的一天
    【解决方案2】:

    您可以执行以下操作,只需替换您感兴趣的事件即可。

    class AnimatedButton: UIButton {
    
        override func awakeFromNib() {
            super.awakeFromNib()
            self.addTarget(self, action: #selector(AnimatedButton.buttonClicked(sender:)), for: .touchUpInside)
        }
    
        @objc private func buttonClicked(sender: UIButton) {
            sender.transform = CGAffineTransform(scaleX: 0.6, y: 0.6)
            // animation ...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多