ios - 快速启用/禁用开始和暂停按钮

标签 ios swift uibutton swift3

我是初学者,所以目前我可能看不到明显的东西。所以请帮忙。当按下暂停按钮时,我需要再次启用开始按钮,反之亦然。但我无法创建一个可以由两个 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"
}

最佳答案

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

@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"
    }
}

注意:您还可以通过在操作中更改标题或图像来使用单个按钮来制作相同的内容。

关于ios - 快速启用/禁用开始和暂停按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40415799/

相关文章:

objective-c - 将 NSOperation 依赖项添加到已在 NSOperationQueue 中的操作

ios - UISearchController 未显示。 iOS 9

objective-c - 排序和过滤核心数据关系的更有效方法是什么?

swift - 将一个或多个数组作为参数传递给 Swift 中的方法

ios - 将 iOS 推送通知显示为警报弹出窗口而不是横幅样式

ios - 如何使用 Swift 将搜索栏移动到导航栏中?

ios - 添加目标 :action:forControlEvents: unrecognized selector sent to instance - uibutton in uitablecell

ios - 在不同的 View Controller 中执行操作

ios - 当 UILabel 动态调整大小时,移动 UIView 中的 UIButton。 iOS系统