首页 > 解决方案 > 每次按下按钮时,如何从标签“26”中减去 1?(斯威夫特初学者)

问题描述

斯威夫特初学者

每次按下“交易”按钮时,我想从值为“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)")


    }
    .
    .
    .
}

标签: iosswiftxcode10.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)")
}

推荐阅读