ios - 使用 customView 将GestureRecognizer 添加到 rightBarButtonItem

标签 ios swift xcode uibarbuttonitem

如何使用 customView 添加操作到我的 rightBarButtonItem

现在我有了代码:

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

关于ios - 使用 customView 将GestureRecognizer 添加到 rightBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59495892/

相关文章:

ios - 在保持 Tabbar 的同时在 AppDelegate 中打开 ViewController

ios - 如何更改状态栏的背景颜色?

iphone - 从 NSURL 下载时如何处理非响应式 UI

swift - NSFastEnumerationIterator.Element(又名 Any)不符合协议(protocol) 'AnyObject'

swift - 有没有办法与 FileManager 和 NSBundle 配合使用来获取/Applications 目录中支持给定类型文件的所有应用程序?

ios - GMSMapView 总是显示相同的位置 iOS

swift - 在 ScrollView 中向可调整大小的图像添加注释

iphone - 立方体结构 View Controller

iphone - UItbaleview Cell json 内容未在 iOS 中显示

Xcode 4.x 将新项目添加到工作区