首页 > 解决方案 > 第二个容器中的 Xcode Swift 按钮不起作用

问题描述

我是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 屏幕图像如下。

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
    }
}

标签: iosswiftxcodeuibuttoncontainers

解决方案


我解决了这个问题。这是非常奇怪的情况。我只向 Kikko 容器添加了高度限制,问题就解决了。


推荐阅读