【发布时间】:2021-05-24 02:47:06
【问题描述】:
我有 5 个按钮和一个标签。当您按下其中一个按钮时,其各自的文本会出现在标签上。当你再次按下按钮时,标签会清除文本。
我已经在下面的代码中完成了。问题是我也想要这样,当您按下另一个按钮时(而您按下的前一个按钮的文本仍在标签上)该按钮的文本出现在标签上。
这就是我现在拥有的:
@IBOutlet weak var button1: UIButton!
@IBOutlet weak var button2: UIButton!
@IBOutlet weak var button3: UIButton!
@IBOutlet var agressionSelected: UILabel!
var buttonHasNoText: Bool = true
@IBAction func agressionBtnTapped(_ sender: UIButton) {
switch sender.tag {
case 1:
if buttonHasNoText {
agressionSelected.text = "Button 1 pressed"
buttonHasNoText = false
} else {
agressionSelected.text = ""
buttonHasNoText = true
}
case 2:
if buttonHasNoText {
agressionSelected.text = "Button 2 pressed"
buttonHasNoText = false
} else {
agressionSelected.text = ""
buttonHasNoText = true
}
case 3:
if buttonHasNoText {
agressionSelected.text = "Button 3 pressed"
buttonHasNoText = false
} else {
agressionSelected.text = ""
buttonHasNoText = true
}
default:
agressionSelected.text = ""
}
}
我读过有类似问题的人,但他们与这个不太匹配,我一直在尝试没有任何结果。我是编码新手,我不知道我是否遗漏了一些基本的东西。
提前致谢!
【问题讨论】:
-
两个问题清楚。按钮 1 被按下并且当前显示在标签上。接下来,按下按钮 2。 (1) 您想追加标签上显示的内容吗?另外,在单独的行上?接下来,假设按下按钮 1、2 或 3 -在问题 1 之后。期望的结果是什么? (2) 替换所有内容,根据按下的按钮进行编辑,或附加 - 在按下按钮 3 的情况下。如何做到这一点相当简单,但你想要的对我来说并不明显。
-
是的,对不起。当您按下按钮时,您会在标签中显示其文本。如果您没有再次触摸该按钮以删除文本,而是按下另一个按钮,则其他按钮文本将附加到标签。
-
我写的答案比你已经接受的要长 - 如果按钮触摸的顺序是 1,然后是 2,然后是 3,然后是 2,你想要什么 - 但看起来你已经有了一个很好的答案足够的答案。好!