代码:
for ... {
let view = CategoryClass.createMyClassView()
view.myLabel.text = packTitle
view.twoLabel.text = packText
view.bgCaategory.layer.cornerRadius = 30
i = i + 1
if(i == 1){
selectPackId = packId!;
view.imgSelect.image = UIImage(named: "selected")
} else {
view.imgSelect.image = UIImage(named: "select")
}
view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleSendData(sender:))))
self.stackView.addArrangedSubview(view)
}
@objc func handleSendData(sender: UITapGestureRecognizer) {
print("H 1")
}
如果我点击视图,则无需打印" H 1"
我希望如果我点击视图,获取id或其他视图值
答案 0 :(得分:0)
它不起作用的原因可能是错误的方法签名。识别器操作的正确签名是:
recognizerAction(_ recognizer: UIGestureRecognizer)
答案 1 :(得分:0)
如果在界面构建器中创建UIStackView,则默认情况下isUserInteractionEnabled
属性为false。这意味着视图及其所有子视图都不会响应用户交互。
在代码中创建视图时,此属性为true
为默认值。
添加:
stackView.isUserInteractionEnabled = true
您只需在viewDidLoad
中添加一次。