【发布时间】:2017-08-17 04:55:07
【问题描述】:
我正在尝试制作一个自己选择的冒险游戏,它会根据用户点击的标签来更改两个标签(用户选择)的文本。我想我会做一个非常嵌套的 if-else 语句,而不是去尝试实现二叉树。我知道如何将手势识别器附加到标签上(我认为):
let tapped1 = UITapGestureRecognizer(target: self, action: #selector(VCGame.usrChose1))
choice1.isUserInteractionEnabled = true
choice1.addGestureRecognizer(tapped1)
let tapped2 = UITapGestureRecognizer(target: self, action: #selector(VCGame.usrChose2))
choice2.isUserInteractionEnabled = true
choice2.addGestureRecognizer(tapped2)
并且我可以定义在 usrChose1 和 usrChose2 函数中触摸标签时要执行的操作,但是,这些函数只工作一次:第一次选择函数时,我的游戏不止一个选择。从那里开始,如果用户触摸它们,标签也会做同样的事情。
如果点击 label1 或 label2,我将如何在 if-else 语句中设置一个评估为真或假的条件?
这里是 usrChoice1 和 usrChoice2 的代码,用于澄清
func usrChose1(sender : UITapGestureRecognizer) {
print("tap 1 working")
choice1.text = "choice1.1"
choice2.text = "choice1.2"
}
func usrChose2(sender : UITapGestureRecognizer) {
print("tap2 working")
choice1.text = "update2.1";
choice2.text = "update2.2"
}
下图显示了我的要求:
【问题讨论】:
-
如果用户第二次点击choice1标签,你想做什么?
-
@user1000 因此,如果点击了choice1,则两个标签将分别更新为“update1.1”和“update1.2”之类的内容。到目前为止,我可以做到这一点。但是游戏必须继续,所以如果用户点击choice1,现在显示为“update1.1”,这两个标签应该再次更新以提供两个新的选择,如“update1.1.1”和“1.1.2”跨度>
-
你是什么意思?比如什么?
-
如果您在标签上添加了手势,并且没有删除它。然后每次点击标签时都会调用手势方法(usrChose1、usrChose2)。那么这些功能只能工作一次是什么意思?
-
@user1000 抱歉,我不小心按了“输入”
标签: ios swift uilabel uitapgesturerecognizer