如何在motionEnded中运行按钮动作?

Posted

技术标签:

【中文标题】如何在motionEnded中运行按钮动作?【英文标题】:How to run a button action in motionEnded? 【发布时间】:2017-09-17 07:22:07 【问题描述】:

在 Swift 4 中一个非常基本的摇骰子应用程序中,我有两个函数。第一个运行随机骰子功能。然而,第二个需要一个 sender 参数,因为它实际上是一个IBAction,所以它需要知道哪个按钮被按下。

如何在摇动期间向motionEnded 添加假按钮?

    // MARK: -- Outlets and Actions
    @IBOutlet weak var diceImageView1: UIImageView!
    @IBOutlet weak var diceImageView2: UIImageView!


    @IBAction func rollButtonPressed(_ sender: UIButton) 

        updateDiceImages()
        updateRollButton(sender)

    

...

    override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) 
        updateDiceImages()

        // how to send sender from motionEnded?
        rollButtonPressed( magic sender needed )

        // or another function that also needs the UIButton sender
        updateRollButton( same magic sender needed )
    

【问题讨论】:

【参考方案1】:

IBActions 不必sender 参数,您可以删除它。

@IBAction func rollButtonPressed()

请注意,修改函数后,您应该重新连接 Interface Builder 中的操作以防止崩溃。

【讨论】:

以上是关于如何在motionEnded中运行按钮动作?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 的场景转换过程中保持动作和动画的运行?

在Spritekit中,如何在removeFromParent之后再次启动动作?

Swift-摇动结束后查找位置

如何使用 SwiftUI 在动作关闭中获取按钮本身?

如何在ios上将按钮动作捕获到javascript中?

如何在 tvOS 中对按钮焦点执行动作事件