表头视图内 UIImageview 的标签不起作用

问题描述 投票:0回答:2

我做错了什么?我还尝试对 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)
}
    
ios swift uitableview uitapgesturerecognizer
2个回答
0
投票

这非常愚蠢,我浪费了一天的时间试图找出问题所在。但我使用的是 UIGestureRecognizer 而不是 UITapGestureRecognizer。


0
投票

您添加了

UIGestureRecognizer
...而不是
UITapGestureRecognizer
识别器。

更改此行:

imageView.addGestureRecognizer(UIGestureRecognizer(target: self, action: #selector(showGroupDetails)))

对此:

imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(showGroupDetails)))
© www.soinside.com 2019 - 2024. All rights reserved.