Ich experimentiere mit Tasten, und ich habe in was ist wahrscheinlich ein einfaches Problem geraten. Ich habe zwei Knöpfe und zwei Etiketten.Wie registriert man mehrere Tasten mit UIKit in Swift?
Die Labels generieren zufällige String-Werte von entweder "A" oder "B". Ich möchte, dass die korrekte Bezeichnung verschwindet, wenn die entsprechende Schaltfläche ausgewählt ist.
Ich habe den folgenden Code, aber ich habe ein Problem festgestellt. Wenn die Buchstaben identisch sind, werden beide Beschriftungen ausgeblendet, wenn die entsprechende Schaltfläche angetippt wird.
Ich verstehe, warum das passiert, denke ich. Es ist, weil mein Code ausgeführt wird, wenn buttonA einmal angetippt wird (ich habe noch nicht auf Knopf B angefangen, also tut es nichts.)
Also meine Frage ist, wie benötige ich 2 Taps? Mit anderen Worten, wenn label_1 und label_2 beide als String "A" angezeigt werden, wie würde der Benutzer den ButtonA zweimal drücken müssen? Wenn mehr Code benötigt wird, lassen Sie es mich in den Kommentaren wissen.
@IBOutlet weak var label_1: UILabel!
@IBOutlet weak var label_2: UILabel!
@IBOutlet weak var label_3: UILabel!
@IBOutlet weak var label_4: UILabel!
@IBOutlet weak var label_5: UILabel!
var visibleLetters = ["A", "B", "Z", "X"]
var text = "", text2 = "", text3 = "", text4 = "", text5 = ""
let aButton = "A", bButton = "B", zButton = "Z", xButton = "X"
var x = 0
override func viewDidLoad() {
super.viewDidLoad()
createRandomLetter(text, aSecondLetter: text2, aThirdLetter: text3, aFourthLetter: text4, aFifthLetter: text5)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func buttonA(sender: UIButton) {
if aButton == label_1.text {
label_1.hidden = true
label_1.tag += 1
}
else {
//play animation
print("play animation")
}
}
@IBAction func buttonB(sender: UIButton) {
if bButton == label_1.text {
label_1.hidden = true
}
}
@IBAction func buttonX(sender: UIButton) {
if xButton == label_1.text {
label_1.hidden = true
}
}
@IBAction func buttonZ(sender: UIButton) {
if zButton == label_1.text {
label_1.hidden = true
}
}
func createRandomLetter(individualLetter: String, aSecondLetter: String, aThirdLetter: String, aFourthLetter: String, aFifthLetter: String) {
let individuaLetter = visibleLetters[Int(arc4random_uniform(UInt32(visibleLetters.count)))],
aSecondLetter = visibleLetters[Int(arc4random_uniform(UInt32(visibleLetters.count)))],
aThirdLetter = visibleLetters[Int(arc4random_uniform(UInt32(visibleLetters.count)))],
aFourthLetter = visibleLetters[Int(arc4random_uniform(UInt32(visibleLetters.count)))],
aFifthLetter = visibleLetters[Int(arc4random_uniform(UInt32(visibleLetters.count)))]
label_1.text = individuaLetter
label_2.text = aSecondLetter
label_3.text = aThirdLetter
label_4.text = aFourthLetter
label_5.text = aFifthLetter
}
func isCorrect() {
if aButton == label_1.text {
label_1.hidden = true
label_1.tag += 1
}
else if label_1.tag == 1 && aButton == label_2.text {
}
else {
//play animation
print("play animation")
}
}
}
bin ich nicht sicher, was du machen willst. Kannst du mir mehr Details geben? – Ryan
Ist label1 an buttonA und label2 an buttonB gebunden? Kannst du die Notwendigkeit zu zwei Taps erklären. – ryantxr
Ich werde mein Bestes geben, um zu erklären, was ich will. Ich habe einen zufälligen Satz von Buchstaben und einen konstanten Satz von Knöpfen. Die Knöpfe sind immer A, B, X, Z (ich bereue es, die zusätzlichen Knöpfe so bald hinzuzufügen), also werde ich so tun, als ob ich kein X und Z hinzugefügt hätte. Also habe ich 2 Etiketten, die zufällig A oder B anzeigen Der Benutzer muss A drücken, wenn Label_1 A oder B anzeigt, wenn Label_1 B zeigt. Wenn der Benutzer die richtige Taste drückt, dann tut er das Gleiche für Label_2. – QuirkyCoder