【问题标题】:How do I subtract 1 from a label "26" everytime a button is pressed? (Swift Beginner)每次按下按钮时,如何从标签“26”中减去 1? (斯威夫特初学者)
【发布时间】:2020-01-15 13:04:07
【问题描述】:

斯威夫特初学者

每次按下“交易”按钮时,我都想从值为“26”的标签中减去 1。我将其转换为 Int 吗?以及如何添加计算?

我编写了cardsAmount.text = "25",它有效。但是每次按下按钮时都需要减1,而不是硬编码。

另外,以后我想加号。

谢谢!

class ViewController: UIViewController {

    @IBOutlet weak var leftPile: UIImageView!

    @IBOutlet weak var rightPile: UIImageView!

    @IBOutlet weak var cardsAmount: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        }


    @IBAction func deal(_ sender: Any) {

        let shuffled = (2...53).shuffled()
        let leftNumber = shuffled[0]
        let rightNumber = shuffled[1]

        //cardsAmount.text = "25"

        leftPile.image = UIImage(named: "c\(leftNumber)")

        rightPile.image = UIImage(named: "c\(rightNumber)")


    }
    .
    .
    .
}

【问题讨论】:

    标签: ios swift xcode10.1


    【解决方案1】:

    您可以使用属性观察器。

    var number: Int = 26 {
        didSet {
            if number > 0 {
            self.cardsAmount.text = "\(number)"
            }
        }
    }
    
    @IBAction func deal(_ sender: Any) {
        let shuffled = (2...53).shuffled()
        let leftNumber = shuffled[0]
        let rightNumber = shuffled[1]
    
        number -= 1 // whenever number value changes, didSet (property observer) will be called
    
        leftPile.image = UIImage(named: "c\(leftNumber)")
        rightPile.image = UIImage(named: "c\(rightNumber)")
    }
    

    【讨论】:

      【解决方案2】:

      我认为您应该添加variable,因为您是初学者。使用这个:

      var initialNumber: Int = 1
      var number: Int = 26
      
      @IBAction func deal(_ sender: Any) {
      
          let shuffled = (2...53).shuffled()
          let leftNumber = shuffled[0]
          let rightNumber = shuffled[1]
      
          number = number - initialNumber
          cardsAmount.text = "\(number)" //This is to subtract. Now you can check if it is a negative number and perform operations ahead using if else
      
          leftPile.image = UIImage(named: "c\(leftNumber)")
      
          rightPile.image = UIImage(named: "c\(rightNumber)")
      
      
      }
      

      您可以按照相同的方法添加数字。如果你想保存initialNumber 那么你可以写initialNumber = initialNumber + 1 然后使用它。如果您对此答案有任何疑问,请告诉我。

      【讨论】:

      • 嗨,感谢您的仓促响应,但我需要每次按下按钮时减 1,目前它只执行一次,谢谢
      • @ssdd2010 更新了答案。虽然,你现在不需要initialNumber,但只是为了你的学习经验,我把它留在那里。如果您有任何疑问,请告诉我。
      • 这行得通,我知道如何更改为 number = number - 1 并删除初始 number 变量。我如何表达我的感激之情?我只是赞成你的回答吗?我能做的就这些了吗?
      • @ssdd2010 如果它有效,您可以将此答案标记为正确。这样,任何其他具有相同查询的人都会自信地依赖这个答案。另外,只是一个快速提示,您也可以写number = number -1 as the number -= 1。这做同样的事情。如果您仍有任何疑问,请告诉我,否则将其标记为正确。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多