Лидирующий ноль в калькуляторе swift2
У меня проблема с нулем в моем простом приложении (калькулятор). При запуске Zero печатается на этикетке, но когда я нажимаю кнопку, например, "1", я вижу "01". Это не выглядит хорошо, поэтому я бы изменил это. Мой код ниже. Может ли кто-нибудь помочь мне в этом?
import UIKit
class ViewController: UIViewController {
var previousValue:Int?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typicala nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//display
@IBOutlet weak var displayLabel: UILabel!
// buttons
@IBAction func buttonPressed(sender: AnyObject) {
let numb = (sender as! UIButton).tag
displayLabel.text = "\(displayLabel.text!)\(numb)"
}
//plus
@IBAction func plusPress(sender: AnyObject) {
previousValue = Int(displayLabel.text!)
displayLabel.text = "+"
}
//minus
@IBAction func minusPress(sender: AnyObject) {
previousValue = Int(displayLabel.text!)
displayLabel.text = "-"
}
// count
@IBAction func count(sender: AnyObject) {
let result = previousValue! + Int(displayLabel.text!)!
displayLabel.text = "\(result)"
}
@IBAction func clear(sender: AnyObject) {
displayLabel.text=""
}
}
1 ответ
Решение
Проверьте содержимое displayLabel.text
первый. Если это 0
затем просто установите displayLabel.text
на номер, который был нажат. Кроме того, если вы объявите sender
в buttonPressed
быть UIButton
тогда вам не нужно разыгрывать это:
@IBAction func buttonPressed(sender: UIButton) {
let numb = sender.tag
if displayLabel.text == "0" {
displayLabel.text = "\(numb)"
}
else {
displayLabel.text = "\(displayLabel.text!)\(numb)"
}
}