swift - 如何在 viewDidLoad 中调用 UIButton 的扩展

标签 swift invoke ibaction 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中调用blinkBut​​ton函数。

最佳答案

您需要将值传递为nil,因为参数具有可选类型,或者您可以传递任何对象类型。

override func viewDidLoad() {
   super.viewDidLoad()
       blinkButton(nil) 
}

并且需要在func flashButton中的self.blinkBut​​ton(nil)中删除,它被调用了两次。

关于swift - 如何在 viewDidLoad 中调用 UIButton 的扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56122275/

相关文章:

ios - SwiftUI:如何将核心数据对象传递给 View ?

c++ - 如何将可变参数传递给exe?

iOS UIButton、setEnabled 和 button.hidden 不工作

c# - 当方法信息仅在运行时已知时优化 MethodInfo.Invoke

iphone - 以编程方式将函数锚定到 UIButton

ios - 来自 uitableViewCell 的 swift @IBAction

json - Swift - 来自字符串错误的日期

Swift Http 客户端不发送请求

swift - TextField 用户交互已禁用,但触摸时会显示错误 View

java - 使用 Java Reflections 调用 invoke 方法时出现 IllegalArgumentException