是否可以创建带有 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中创建一个动作。每当我使用此类时,这应该会自动发生。
是否有可能做类似的事情?
答案 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)
}
}