如何将 UIButton 上的 UIView 作为点击事件的参数传递

How to pass a UIView on UIButton as a parameter on click event

我使用循环生成了多个 UIButton 和 UIView,问题是,我希望在单击生成的 UIButton 时隐藏生成的 UIView,

问题是,我如何在 UIButton 单击事件上传递 UIView,以便系统知道将隐藏什么 UIView

这是我生成 UIButtons 和 UIViews 的代码

for (key, value) in myStringsArray {
     let myButton = UIButton()
     let myView = UIView()

     panelButton.tag = value
     panelButton.addTarget(self, action: #selector(onMyButtonClick), for: .touchUpInside)
}

我唯一可以传递给 .tag 的数据是 Int

这是我的 onMyButtonClick 函数,用于侦听 UIButton 的点击事件

@objc func onMyButtonClick (sender: UIButton) {
     print(sender.tag)
}

我想要做的是有一个像这样工作的点击监听器函数

func clickMe (view: UIView, isOpen: Bool) {
     view.isHidden = isOpen
}

您可以为按钮和视图分配相同的标签。

然后你可以通过标签找到视图并隐藏它。

@objc func onMyButtonClick (sender: UIButton) {
     print(sender.tag)
     if let foundView = view.viewWithTag(sender.tag) {
        foundView.isHidden = true
    }
}