所以我一直在努力使图片可点击。我正在尝试使用UITapGestureRecognizer类引用我的方法,但是当我在模拟器上单击/点击时,它似乎没有注册。
我也知道将图像设置为按钮更容易,但是这样做会导致图像充满整个导航栏并被完全拉伸。
代码:
let leftNavigationBar: UIBarButtonItem = {
let logoImage = UIImage(named: "defaultUserIcon")
let logoImageView = UIImageView(image: logoImage)
logoImageView.frame = CGRect(x:0.0,y:0.0, width:35,height:35)
logoImageView.contentMode = .scaleAspectFit
// Tap gesture
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(showSideBar))
logoImageView.isUserInteractionEnabled = true
logoImageView.addGestureRecognizer(tapGesture)
let imageItem = UIBarButtonItem(customView: logoImageView)
// adding constraints here
return imageItem
}()
@objc func showSideBar() {
print(123)
}
override func viewDidLoad() {
navigationItem.leftBarButtonItem = leftNavigationBar
}
该代码的目的是在用户单击屏幕左上角的个人资料图片时显示侧栏。
编辑:我添加了用户交互,但是它似乎仍然不起作用。我尝试将图像放入工作的主视图中。因此,它似乎只在导航栏中出现错误。