具有动画 swift 的自定义 UIButton 类



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

import UIKit
class AnimatedButton: UIButton {
@objc private func buttonClicked(sender: UIButton) {
sender.transform = CGAffineTransform(scaleX: 0.6, y: 0.6)
// animation ...
}
}

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

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

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

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

当您点击按钮时,它将调用 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)
}
}

最新更新