如何在 viewDidLoad 中调用 UIButton 的扩展
How to invoke an extension for UIButton in viewDidLoad
我对 Swift 和一般的编程还很陌生。我目前一直在研究如何在 viewDidLoad
中对按钮自触发(调用)进行扩展。我的代码在我点击按钮时有效,但我希望它在不点击 viewDidLoad
.
的情况下自动触发
@IBOutlet weak var blinkButton: UIButton!
// Yellow Colour Error: All paths through this function will call itself
@IBAction func blinkButtonTapped(_ sender: UIButton) {
blinkButtonTapped(blinkButton)
}
// Yellow Colour Error: All paths through this function will call itself
extension UIButton {
func blinkButton(_ sender: AnyObject?) {
self.blinkButton( nil )
let flash = CABasicAnimation(keyPath: "opacity")
flash.duration = 0.5
flash.fromValue = 1
flash.toValue = 0.1
flash.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
flash.autoreverses = true
flash.repeatCount = 100000000
layer.add(flash, forKey: nil)
}
我想调用 ViewDidLoad
中的 blinkButton
函数。
您需要将值作为 nil
传递,因为参数具有可选类型,或者您可以传递任何对象类型。
override func viewDidLoad() {
super.viewDidLoad()
blinkButton(nil)
}
而func blinkButton
中的self.blinkButton(nil)
中需要去掉,调用了两次。
我对 Swift 和一般的编程还很陌生。我目前一直在研究如何在 viewDidLoad
中对按钮自触发(调用)进行扩展。我的代码在我点击按钮时有效,但我希望它在不点击 viewDidLoad
.
@IBOutlet weak var blinkButton: UIButton!
// Yellow Colour Error: All paths through this function will call itself
@IBAction func blinkButtonTapped(_ sender: UIButton) {
blinkButtonTapped(blinkButton)
}
// Yellow Colour Error: All paths through this function will call itself
extension UIButton {
func blinkButton(_ sender: AnyObject?) {
self.blinkButton( nil )
let flash = CABasicAnimation(keyPath: "opacity")
flash.duration = 0.5
flash.fromValue = 1
flash.toValue = 0.1
flash.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
flash.autoreverses = true
flash.repeatCount = 100000000
layer.add(flash, forKey: nil)
}
我想调用 ViewDidLoad
中的 blinkButton
函数。
您需要将值作为 nil
传递,因为参数具有可选类型,或者您可以传递任何对象类型。
override func viewDidLoad() {
super.viewDidLoad()
blinkButton(nil)
}
而func blinkButton
中的self.blinkButton(nil)
中需要去掉,调用了两次。