【问题标题】:Why My UITapGestureRecognizer method not calling for Navigationbar titleView in swift为什么我的 UITapGestureRecognizer 方法没有快速调用 Navigationbar titleView
【发布时间】:2021-04-21 08:01:53
【问题描述】:

使用下面的代码,我可以在导航栏中获取标题图像,但 titlePressed 方法没有调用.. 如果我点击标题,我无法进入 HomeVC.. 请帮忙.. 我哪里错了

func setUpNavigationBar(){

    let logoImageView = UIImageView.init(image: #imageLiteral(resourceName: "pic-logo"))
    logoImageView.tintColor = .darkGray
    logoImageView.frame = CGRect(x:0.0,y:0.0, width:100,height:25.0)
    logoImageView.contentMode = .scaleAspectFit
    logoImageView.widthAnchor.constraint(equalToConstant: 200).isActive = true
    logoImageView.heightAnchor.constraint(equalToConstant: 50).isActive = true
    self.navigationItem.titleView?.isUserInteractionEnabled = true
    let titleTap = UITapGestureRecognizer(target: self, action: #selector(titlePressed))
    self.navigationItem.titleView?.addGestureRecognizer(titleTap)
    self.navigationItem.titleView = logoImageView

}
@objc func titlePressed(){
    print("title clicked...")
    
    let vc = StoryBoard.main.instantiateViewController(identifier: "HomeVC") as! HomeVC
   
    self.navigationController?.pushViewController(vc, animated: true)
    
    
}

【问题讨论】:

  • 请检查您的titleView是否有手势。
  • @Kudos,怎么样?以及在哪里检查
  • 我在这里添加了self.navigationItem.titleView?.addGestureRecognizer(titleTap)
  • 向 logoImageView 添加手势或将序列更改为 ```self.navigationItem.titleView = logoImageView self.navigationItem.titleView?.addGestureRecognizer(titleTap)

标签: swift uinavigationbar uitapgesturerecognizer


【解决方案1】:
self.navigationItem.titleView?.addGestureRecognizer(titleTap)
self.navigationItem.titleView = logoImageView

如果标题视图不为零,则添加手势识别器,然后在下一行立即将标题视图更改为完全不同的东西,它上面不会有手势识别器。

self.navigationItem.titleView = logoImageView
logoImageView.addGestureRecognizer(titleTap)

这一行:

self.navigationItem.titleView?.isUserInteractionEnabled = true

也是有问题的,因为:此时titleView很可能是nil,所以这一行不会做任何事情,而且你以后再改变title view。

【讨论】:

    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 2017-12-07
    • 2019-07-03
    相关资源
    最近更新 更多