私はボタンを試していますが、おそらく簡単な問題に遭遇しました。私は2つのボタンと2つのラベルを持っています。SwiftのUIKitを使用して複数のボタンタップを登録するには?
ラベルは、 "A"または "B"のいずれかのランダムな文字列値を生成します。適切なボタンが選択されていれば、正しいラベルが消えたがります。
私は次のコードを考え出しましたが、問題が発生しました。文字が同じ場合は、対応するボタンをタップすると両方のラベルが非表示になります。
私はこれがなぜ起こっているのか理解しています。これは、buttonAが1回タップされたときにコードが実行されるためです(ボタンBをまだ起動していないので、何もしません)。
どうして2タップが必要ですか?言い換えれば、label_1とlabel_2の両方がString "A"として表示されている場合、ユーザーにbuttonAを2回タップする必要がありますか?より多くのコードが必要な場合は、コメントに私に教えてください。
@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に関連付けられますか? 2回タップする必要性について説明できますか? – ryantxr
私は自分が望むものを説明するために最善を尽くします。私はランダムな文字セットと一定のボタンセットを持っています。ボタンは常にA、B、X、Zです(私はすぐに余分なボタンを追加することを後悔します)ので、XとZを追加しなかったようなふりをします。 label_1がAを表示している場合はAを、Bを表示している場合はBを押す必要があります。ユーザーが正しいボタンを押すと、label_2についても同様の操作を行います。 – QuirkyCoder