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