Ich vergleiche zwei Zahlen und der Zähler steigt um 1 wenn zwei Zahlen nicht gleich sind. Die Etiketten werden jedoch nicht aktualisiert und der Startknopf wird ausgegraut. Die Schaltfläche ist ausgegraut, bis diese beiden Zahlen gleich sind.Swift Button ausgegraut
import UIKit
enum modes {
case start
case cancel
}
class ViewController: UIViewController {
var mode: modes = modes.start
var num1: Int = 0
var num2: Int = 1
var count: Int = 0
@IBOutlet weak var start: UIBarButtonItem!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var countLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func startClicked(sender: AnyObject) {
if (mode == modes.start) {
mode = modes.cancel
start.title = "cancel"
checkNums()
} else if (mode == modes.cancel) {
mode = modes.start
start.title = "start"
num1 = 0
num2 = 1
}
}
func checkNums() {
while (num1 != num2) {
let temp: UInt32 = 100000
num1 = Int(arc4random_uniform(temp))
num2 = Int(arc4random_uniform(temp))
print("\(num1) and \(num2)")
update()
}
func update() {
count += 1
label.text = "\(num1) and \(num2)"
countLabel.text = "\(count)"
}
}
Bitte helfen! Danke.
Haben Sie versucht Attribut der Schaltfläche aktiviert? Beispiel: myButton.enabled = false macht es deaktiviert. – Array
@Array Ja, aber das Problem ist, dass das Programm nicht aktualisiert, während es zwei Werte vergleicht. Es aktualisiert nur das letzte Ergebnis. – Asada