我正在試驗按鈕,我遇到了可能是一個簡單的問題。我有兩個按鈕和兩個標籤。如何在Swift中使用UIKit註冊多個按鈕水龍頭?
標籤生成「A」或「B」的隨機字符串值。如果選擇了合適的按鈕,我希望正確的標籤消失。
我已經拿出下面的代碼,但我遇到了一個問題。如果字母相同,則在點擊相應的按鈕時,這兩個標籤將被隱藏。
我明白爲什麼會發生這種情況。這是因爲我的代碼是在buttonA被點擊一次時執行的(我還沒有啓動按鈕B,所以它什麼也沒有做)。
所以我的問題是我如何需要2個水龍頭?換句話說,如果label_1和label_2都顯示爲字符串「A」,我將如何要求用戶點擊buttonA兩次?如果需要更多代碼,請在評論中告訴我。
@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")
}
}
}
我不是確定你想要做什麼。你能給我更多的細節嗎? – Ryan
label1綁定到buttonA,label2綁定buttonB?你能否解釋兩次敲擊的必要性? – ryantxr
我會盡我所能解釋我想要的。我有一組隨機的字母和一組常量按鈕。按鈕總是A,B,X,Z(我很後悔添加額外的按鈕),所以我會假裝我沒有添加X和Z.所以我有2個標籤隨機顯示A或B 。如果label_1顯示A,則用戶必須按A;如果label_1顯示B,則用戶必須按B。如果用戶按下正確的按鈕,則他對label_2執行相同的操作。 – QuirkyCoder