【发布时间】:2019-02-06 11:31:50
【问题描述】:
我创建了一个自定义按钮类,它是 UIButton 的子类, 并编写一个 UIButton 扩展。
这是我的扩展:
extension UIButton {
func setButtonCurvy() {
self.layer.cornerRadius = self.frame.size.height/2
}
//This function should be run when button tapped
func buttonTapped(_ completion: @escaping () -> Void) {
let anim = CASpringAnimation(keyPath: "transform.scale")
anim.fromValue = 0.9
anim.toValue = 1.1
anim.timingFunction = CAMediaTimingFunction(name: .easeIn)
anim.autoreverses = true
anim.repeatCount = 0
anim.duration = 1
self.layer.add(anim, forKey: nil)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.9) {
completion()
}
}
}
我的课是:
class MyButton: UIButton {
//Customize buttons...
override func awakeFromNib() {
self.setButtonCurvy()
self.backgroundColor = UIColor.mainButtonColor()
switch self.tag {
case 1:
self.titleLabel?.font = UIFont(name: "Mostley Script", size: 23)
break
case 2:
self.titleLabel?.font = UIFont(name: "Mostley Script", size: 20)
break
default:
self.titleLabel?.font = UIFont(name: "Mostley Script", size: 38)
break
}
}
}
所以这是我的问题,我在文档中找不到,并提出了问题。也许我只是错过了一些明显的东西。 有什么方法可以在点击我的按钮时调用 buttonHitted() 函数?
【问题讨论】:
-
通过 UIButton 的实例从按钮的操作方法中调用
buttonTapped方法。 -
您可以在 UIButton 的 touchupinside 事件上添加操作。每当您按下按钮时都会调用它
-
您在哪里以及如何使用
MyButton?请分享一些代码。 -
你好@Mahak Mittal,@Mayur Karmur 当然我知道我可以在我的动作方法中调用这个函数。但是有大量的类和按钮,我不想重复自己。