ios - 使用 customView 将GestureRecognizer 添加到 rightBarButtonItem
问题描述
如何向我rightBarButtonItem
的 with添加操作customView
?
现在我有代码:
override func viewDidLoad() {
super.viewDidLoad()
configurePhotoProfile()
}
func configurePhotoProfile() {
let imageView = UIImageView()
let widthConstraint = imageView.widthAnchor.constraint(equalToConstant: 34)
let heightConstraint = imageView.heightAnchor.constraint(equalToConstant: 34)
heightConstraint.isActive = true
widthConstraint.isActive = true
imageView.kf.setImage(with: URL(string: channel?.recipientUrlImage ?? ""))
imageView.backgroundColor = .clear
imageView.layer.masksToBounds = true
imageView.layer.cornerRadius = 17
imageView.isUserInteractionEnabled = true
imageView.addGestureRecognizer(UIGestureRecognizer(target: self, action: #selector(ChatsViewController.didTapImageButton(_:))))
if UserDefaults.standard.integer(forKey: UserDefaultsKeys.selectedSegmentedControl) == 0 {
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: imageView)
} else {
self.navigationItem.rightBarButtonItem = nil
}
}
@objc func didTapImageButton(_ sender: UIBarButtonItem) {
print("tap")
}
但是如果我点击barButtonItem
我看不到我print("tap")
的控制台。我的问题在哪里?
解决方案
我看到您正在使用基本手势识别器类,您应该UITapGestureRecognizer
改用。
推荐阅读
- c++ - C++ 代码因分段错误而终止?
- go - 如何在 Go 中捕获任意 UNIX 信号
- c++ - 在 C++ 中读取 json 文件
- r - 如何用 ~pspline 绘制 Cox 模型并在 R 中找到截止值?
- python - 困惑为什么在第二次评估不可变字符串的 += 运算符后不会更改 Python3 中的 id
- wamp - 如果虚拟主机具有相同的名称,如何在同一台计算机上打开实时网站
- c++ - C++中动态二维数组的访问冲突
- hibernate - 我们能否在 typeorm/hibernate 中命名一个关系映射,以便在抛出错误时,在阅读/理解它时更有意义?
- c++ - 拆分重叠段
- javascript - 承诺后的 DispatchEvent (.then)