gpt4 book ai didi

ios - 如何删除特定区域的手势识别器?井字游戏

转载 作者:行者123 更新时间:2023-11-29 01:14:49 24 4
gpt4 key购买 nike

我只使用一个 tapGesture Recognizer 并说如果它在某个标签内被点击然后更改文本。但是,在点击它之后,我不希望标签文本能够被更改。这是函数:

@IBAction func onTapped(sender: UITapGestureRecognizer) {
print("Here")
let selectedPoint = sender.locationInView(self.view)
print(selectedPoint)
for label in labelArray{
if CGRectContainsPoint(label1.frame, selectedPoint){
label1.text = String(currentLetter)
}
else{
label1.userInteractionEnabled = false
}
if CGRectContainsPoint(label2.frame, selectedPoint){
label2.text = String(currentLetter)

}
if CGRectContainsPoint(label3.frame, selectedPoint){
label3.text = String(currentLetter)


}
if CGRectContainsPoint(label4.frame, selectedPoint){
label4.text = String(currentLetter)


}
if CGRectContainsPoint(label5.frame, selectedPoint){
label5.text = String(currentLetter)
}
if CGRectContainsPoint(label6.frame, selectedPoint){
label6.text = String(currentLetter)

}
if CGRectContainsPoint(label7.frame, selectedPoint){
label7.text = String(currentLetter)

}
if CGRectContainsPoint(label8.frame, selectedPoint){
label8.text = String(currentLetter)

}
if CGRectContainsPoint(label9.frame, selectedPoint){
label9.text = String(currentLetter)

}
if CGRectContainsPoint(label10.frame, selectedPoint){
label10.text = String(currentLetter)


}
}

}

最佳答案

您这样做的方式似乎并不是实现此目的的好方法,但是,如果您在设置文本后立即停用标签的用户交互,我认为您完成。因为这个 View 位于另一个 View 之上,不会让父 View 了解该手势。

But, that's not how things works

例如:

/.../
if CGRectContainsPoint(label9.frame, selectedPoint){
label9.text = String(currentLetter)
label9.userInteractionEnabled = false
}
/.../

什么都不做,相反,这可能是一个更好的方法:

@IBAction func onTapped(sender: UITapGestureRecognizer) {
let selectedPoint = sender.locationInView(self.view)
for label in labelArray {
if CGRectContainsPoint(label.frame, selectedPoint){
if label.text == "" {
label.text = String(currentLetter)
}
}
}
}

请注意,这不是最佳解决方案,您应该能够将逻辑 View 分开,但对于您的问题,这可以解决问题。

FOOTNOTE:

Notice that in your code, your are traversing an array of labels, but you are not using the label identifier, take a close look at how you should be using it.

关于ios - 如何删除特定区域的手势识别器?井字游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35325255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com