我做错了什么?我还尝试对 UIView 进行子类化,并将“按钮”(imageview)放入其中,并将其用作我的标题视图,但点击仍然不起作用。还尝试使用 UITableHeaderFooterView。
lazy var groupDetailsButton: UIImageView = {
let imageView = UIImageView()
imageView.isUserInteractionEnabled = true
let image = UIImage(named: "details") //?.resizedImage(newWidth: 30)
imageView.image = image!.withRenderingMode(.alwaysTemplate)
imageView.backgroundColor = .blue
imageView.tintColor = .white
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.contentMode = .scaleAspectFill
imageView.addGestureRecognizer(UIGestureRecognizer(target: self, action: #selector(showGroupDetails)))
return imageView
}()
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView = UIView(frame: CGRect(x: 0, y: 50, width: tableView.frame.width, height: 50))
headerView.isUserInteractionEnabled = true
headerView.addSubview(groupDetailsButton)
headerView.isUserInteractionEnabled = true
headerView.addConstraintsWithFormat("V:|-10-[v0(30)]", views: groupDetailsButton)
headerView.addConstraintsWithFormat("H:[v0(30)]|", views: groupDetailsButton)
return headerView
}
@objc func showGroupDetails(){
print("SHOW GROUP DETAILS")
let groupDetailsController = GroupDetailsController()
groupDetailsController.groupDetails = groupDetails
groupDetailsController.modalPresentationStyle = .fullScreen
self.present(groupDetailsController, animated: true, completion: nil)
}
这非常愚蠢,我浪费了一天的时间试图找出问题所在。但我使用的是 UIGestureRecognizer 而不是 UITapGestureRecognizer。
您添加了
UIGestureRecognizer
...而不是 UITapGestureRecognizer
识别器。
更改此行:
imageView.addGestureRecognizer(UIGestureRecognizer(target: self, action: #selector(showGroupDetails)))
对此:
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(showGroupDetails)))