【问题标题】:Xcode Swift buttons in second container don't work第二个容器中的 Xcode Swift 按钮不起作用
【发布时间】: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

Storyboard design picture

4x3 矩阵键盘按钮在第一个容器中运行良好,但 -、+ 按钮在第二个容器中不起作用。

@valid 给我发了一个链接。我读了它并在下面添加了一个类。我将这个类分配给 Snakky 和 ​​Kikko 容器。顺便说一句,Snakky 是一个带有 4x3 按钮的容器,而 Kikko 是一个带有 2 个按钮(-,+)的容器。这是触摸测试功能。当显示 Snakky 时,触摸测试打印“触摸”,但当显示 KiKko 时,触摸测试打印“无触摸”。 Kikko 的按钮显示但无响应。 Kikko 和 Snakky 的屏幕图像如下。

Kikko screen image

Snakky screen image

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-03
    • 2020-05-05
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2019-05-07
    • 2023-02-09
    • 1970-01-01
    相关资源
    最近更新 更多