Swift - 如何在 UIStackview 上设置点击事件

问题描述

我试图在我的 UIStackview 上设置一个点击事件来打开一个视图控制器。当我这样做时,什么也没有发生。当我点击它时它甚至不打印该行。我在这个网站上尝试了多种解决方案,比如 UITapGestureRecognizer 但无济于事。我做错了什么?

我的代码

private let stackUIView: UIView = {
     let stackUIView = UIView(frame: CGRect(x: 25,y: 25,width: 400,height: 90))
    let tap = UIGestureRecognizer(target: self,action: #selector(stackviewClicked))
    stackUIView.addGestureRecognizer(tap)
    stackUIView.isUserInteractionEnabled = true
    
    return stackUIView
}()


@objc
    func stackviewClicked() {
        print("UIView Clicked")
        let testVC = testViewController()
        navigationController?.pushViewController(testVC,animated: true)

    }

解决方法

应该是UITapGestureRecognizer而不是UIGestureRecognizer

let tap = UITapGestureRecognizer(target: self,action: #selector(stackviewClicked))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...