开始和暂停按钮启用/禁用 swift

Posted

技术标签:

【中文标题】开始和暂停按钮启用/禁用 swift【英文标题】:start and pause buttons enabled/disabled swift 【发布时间】:2016-11-04 05:21:26 【问题描述】:

我是初学者,所以此时我可能看不到明显的东西。所以请帮忙。当按下 pauseButton 时,我需要再次启用我的 startButton,反之亦然。不过,我无法创建两个 UIButton 函数都可以访问的 var。我该怎么办?这是我的部分代码:

@IBAction func Start(_ sender: AnyObject) 

    let disableMyStartButton = sender as? UIButton
    disableMyStartButton?.isEnabled = false

    timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(ViewController.update), userInfo: nil, repeats: true)



@IBAction func pauseTimer(_ sender: AnyObject) 

    timer.invalidate()

    WarningLabel.text = "Paused"

【问题讨论】:

你的意思是说,两个按钮变量不能取IBOutlet?为什么? 在启用或禁用时是否要停止触摸用户交互或更改图像? 【参考方案1】:

您需要创建buttonsOutlet 并在您的方法中使用它们。

@IBOutlet var btnStart: UIButton!
@IBOutlet var btnPause: UIButton!

@IBAction func start(_ sender: UIButton) 

    sender.isEnabled = false
    btnPause.isEnabled = true
    timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(ViewController.update), userInfo: nil, repeats: true)


@IBAction func pauseTimer(_ sender: UIButton) 

    sender.isEnabled = false
    btnStart.isEnabled = true
    timer.invalidate()
    WarningLabel.text = "Paused"

您也可以对这样的按钮使用单个操作来完成此操作。

@IBAction func onStartOrPause(_ sender: UIButton) 

    if (sender == btnStart) 
        sender.isEnabled = false
        btnPause.isEnabled = true
        timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(ViewController.update), userInfo: nil, repeats: true)
    
    else 
        sender.isEnabled = false
        btnStart.isEnabled = true
        timer.invalidate()
        WarningLabel.text = "Paused"
    

注意:您也可以通过在动作中更改标题或图像来使用单个按钮进行相同的操作。

【讨论】:

谢谢。但是,出现“无法为属性发送者分配一个 let 常量”错误。有什么其他措施可以避免吗? 在第一个解决方案中,在 sender.isEnabled = false 行有两个操作 @AntonPlatonov 不明白为什么会出现此错误,是否将您的方法替换为我的方法,因为我使用的是 (_ sender: UIButton) 而不是您之前使用的 (_ sender: AnyObject)。跨度> 这就是问题所在。谢谢你。现在我在下一行有线程 1:EXC BAD INSTRUCTION。但我会试着自己弄清楚。感谢您的帮助。 @AntonPlatonov 如果您忘记将 Outlet Buttons 与 Controller 连接,然后连接它,可能这就是您遇到崩溃的原因。

以上是关于开始和暂停按钮启用/禁用 swift的主要内容,如果未能解决你的问题,请参考以下文章

js/jquery点击按钮循环播放声音

暂停和重置游戏 Spritekit / Swift 之间的区别?

轮到您启用和禁用按钮

Eureka Forms Swift 启用和禁用按钮

Swift 4 - 如何使用按钮启用/禁用键盘

我可以通过应用程序或命令禁用/启用开始菜单中的关机、注销、重启按钮吗?如果是,那怎么办?