【问题标题】:Reset Score Button iOS重置分数按钮 iOS
【发布时间】:2024-01-16 09:53:02
【问题描述】:

我希望 displayBatsmenOneScoreLabel 在按下 resetScoreButton 时重置为 0。

resetScoreButton 的代码是什么?

这是我的代码。

var batsmenOneScoreInt: Int = 0

@IBOutlet weak var displayBatsmenOneScoreLabel: UILabel!

@IBAction func BatsmenOneScoreStepper(_ sender: UIStepper) {
    let batsmenOneScoreValue = Int(sender.value)
    displayBatsmenOneScoreLabel.text = String(batsmenOneScoreValue)
}

@IBAction func resetScoreButton(_ sender: Any) {
   //what should I write here...
}

【问题讨论】:

  • 我猜他的问题是如何将按钮的标签重置为0。
  • JFI,您应该在编程中使用正确的命名约定。例如。在这种情况下,BatsmenOneScoreStepper 应该是 batsmenOneScoreStepper。:)
  • 为什么只重置标签?为什么不同时重置 score 变量?
  • 仅供参考 - 您的 batsmenOneScoreInt 属性从未使用过。在BatsmenOneScoreStepper 中创建一个同名的局部变量。

标签: ios swift uibutton uilabel


【解决方案1】:

您需要重置击球手得分,它应该可以工作。

你可以试试这个代码:

    @IBAction func resetScoreButton(_ sender: Any) {

     let batsmenOneScoreValue = 0
        displayBatsmenOneScoreLabel.text = String(batsmenOneScoreValue)
    }

【讨论】:

    【解决方案2】:
    @IBOutlet weak var batsmenScoreStepper:UIStepper!   
    
    @IBAction func resetScoreButton(_ sender: Any) {
       batsmenScoreStepper.value = 0.0;
       displayBatsmenOneScoreLabel.text = "\(batsmenScoreStepper.value)"
    }
    

    您应该首先取出您的UIStepper 并重置它。

    【讨论】:

    • 谢谢。它重置为 0.0。我只想要 Int 0。我尝试将数字更改为 0,但它不起作用。
    【解决方案3】:

    您可以在按钮的操作(内部修饰)中重置分数,如下所示...

    @IBAction func resetScoreButton(_ sender: Any) {
    
       displayBatsmenOneScoreLabel.text = "0"
       //do something here...
    }
    

    编辑:

    如果你想重置分数变量,你需要在resetScoreButton方法中设置batsmenOneScoreInt = 0

    【讨论】:

    • 您接受了错误的答案。您不想只重置标签。
    • 问题中明确提到“我希望 displayBatsmenOneScoreLabel 在按下 resetScoreButton 时重置为 0。”。
    • @MahendraGP 很可能措辞不佳。这样做的实际用例是什么?没有。
    • 那是因为 OP 似乎并不了解他们的实际要求。如果仅重置标签,则在步进器上的下一次点击将导致标签再次显示上一个分数(+ 或 - 1)。
    【解决方案4】:

    为了获得良好的实践,您应该首先重置保存分数的主变量,然后将该变量设置为标签。

    @IBAction func resetScoreButton(_ sender: Any) {
        batsmenOneScoreInt = 0;
        displayBatsmenOneScoreLabel.text = "\(batsmenOneScoreInt)"
    }
    

    【讨论】: