Как вычесть 1 из метки «26» при каждом нажатии кнопки? (Свифт Начинающий) - PullRequest
0 голосов
/ 15 января 2020

Swift Beginner

Я хочу вычитать 1 из метки со значением «26» при каждом нажатии кнопки «Сделка». Должен ли я преобразовать его в 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)")


    }
    .
    .
    .
}

Ответы [ 2 ]

1 голос
/ 15 января 2020

Вы можете использовать свойства обозревателя.

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)")
}
0 голосов
/ 15 января 2020

Я думаю, вы должны добавить 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 и использовать его. Дайте мне знать, если у вас есть какие-либо вопросы относительно этого ответа.

...