自定义UIButton类,动画快速

时间:2018-07-03 09:22:34

标签: ios swift animation uibutton

是否可以创建带有 onclick动画 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中创建一个动作。每当我使用此类时,这应该会自动发生。

是否有可能做类似的事情?

2 个答案:

答案 0 :(得分:3)

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

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 ...
    }
}

答案 1 :(得分:2)

在下面的代码中,当您点击按钮时,它将调用动画方法并执行动画。当您想在按钮上执行动画时,只需将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)

    }
}