【发布时间】:2021-03-29 22:35:14
【问题描述】:
我是 IOS 编程新手。我面临一个问题。有一个viewController,在这个视图控制器中,我的应用程序中有 2 个容器。两个容器中都有按钮。所有容器在开始时都是隐藏的。当发生特定情况时,会出现这些容器之一。当显示第一个容器时,此容器中的按钮工作正常,但如果显示其他容器,则此容器中的按钮不起作用。此容器中的按钮出现但不起作用。所有这两个容器都是相同的。我不明白为什么第二个容器的按钮不起作用。
任何帮助将不胜感激。
我的一些与此问题相关的代码是;
@IBOutlet weak var Snakky: UIInputView!
@IBOutlet weak var Kikko: UIInputView!
if(vmcType == 1)
{
Snakky.accessibilityActivate()
Snakky.isHidden = false
Kikko.isHidden = true
}
if(vmcType == 2)
{
Kikko.accessibilityActivate()
Snakky.isHidden = true
Kikko.isHidden = false
}
//One of my button function;
@IBAction func bkey0(_ sender: Any) {
keypadKeys += "0";
print("Keypad=", keypadKeys)
return
}
所有按钮功能都一样。
容器类是UIInputViewController
4x3 矩阵键盘按钮在第一个容器中运行良好,但 -、+ 按钮在第二个容器中不起作用。
@valid 给我发了一个链接。我读了它并在下面添加了一个类。我将这个类分配给 Snakky 和 Kikko 容器。顺便说一句,Snakky 是一个带有 4x3 按钮的容器,而 Kikko 是一个带有 2 个按钮(-,+)的容器。这是触摸测试功能。当显示 Snakky 时,触摸测试打印“触摸”,但当显示 KiKko 时,触摸测试打印“无触摸”。 Kikko 的按钮显示但无响应。 Kikko 和 Snakky 的屏幕图像如下。
class PassThroughView: UIView {
override func point(inside point: CGPoint, with event: UIEvent?) ->
Bool {
for subview in subviews as [UIView] {
if !subview.isHidden && subview.alpha > 0 &&
subview.isUserInteractionEnabled && subview.point(inside:
convert(point, to: subview), with: event) {
print("Touch")
return true
}
}
print("No touch")
return false
}
}
【问题讨论】:
-
通过显示相关的代码行来帮助自己。没有人知道你所谓的容器是什么。
-
请查看How to Ask。
-
你能发布一张图片来描述你最后需要实现的目标吗?
-
您能否在描述发生的情况时为您的容器命名?当你只写“这个”时,不清楚你的意思。我想,事件会导致错误的响应者(以先出现者为准)。 Using Responders and the Responder Chain to Handle Events 可能会为您指明正确的方向。
标签: ios swift xcode uibutton containers