Swift 3 多手势识别器 SWRevealController

Posted

技术标签:

【中文标题】Swift 3 多手势识别器 SWRevealController【英文标题】:Swift 3 multiple gestureRecorgnizer SWRevealController 【发布时间】:2017-08-31 05:07:50 【问题描述】:

我有两个要使用的手势识别器。

1) 点击关闭侧边菜单 (SWRevealController)

2) 点击视图关闭键盘

    override func viewDidLoad() 
    super.viewDidLoad()
    menuBtn.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:)), for: .touchUpInside)
    self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
    self.view.addGestureRecognizer(self.revealViewController().tapGestureRecognizer())
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(LoginController.dismissKeyboard))
    self.view.addGestureRecognizer(tap)
    

将这两行放在一起,解除键盘手势识别器胜过revealViewController。如何将这两种手势结合使用?

【问题讨论】:

使用标签尝试一次 你能用我编辑的代码发布答案吗? 【参考方案1】:

LoginController.dismissKeyboard 方法中创建条件。 检查isKeyboard 是否打开,然后关闭它。否则关闭 (SWRevealController) 侧边菜单。

要检查键盘是否打开,您可以使用UIKeyboardWillShowNotificationUIKeyboardWillHideNotification 方法的发布通知。

【讨论】:

以上是关于Swift 3 多手势识别器 SWRevealController的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3使用选择器将按钮/手势识别器动作传递给其他功能

在 Xcode 8.0 Swift 3.0 上检测手势

Swift:手势识别器未注册

为啥滑动手势识别器在 swift 中会出错?

swift 中手势的使用

在 Swift 中无法识别点击手势(手势开始)