UITapGestureRecognizer 和 UIBarButtonItem.action 事件冲突
博客专区 > asjoker 的博客 > 博客详情
UITapGestureRecognizer 和 UIBarButtonItem.action 事件冲突
asjoker 发表于12个月前
UITapGestureRecognizer 和 UIBarButtonItem.action 事件冲突
  • 发表于 12个月前
  • 阅读 6
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: UITapGestureRecognizer 和 UIBarButtonItem.action 事件冲突

#UITapGestureRecognizer 和 UIBarButtonItem.action 事件冲突

UITapGestureRecognizer在整个UIView上 UIToolbar在UIView上

###解决方案

实现 UIGestureRecognizerDelegate ,并设置 UITapGestureRecognizer 的 delegate

extension XXXX: UIGestureRecognizerDelegate {
    // MARK: UIGestureRecognizerDelegate

    /*
    此方法在window对象在有触摸事件发生时,
    调用gesture recognizer的touchesBegan:withEvent:方法之前调用,
    如果返回NO,则gesture recognizer不会看到此触摸事件。(默认情况下为YES).
    */
    func gestureRecognizer(
	    gestureRecognizer: UIGestureRecognizer, 
	    shouldReceiveTouch touch: UITouch
    ) -> Bool {
        /*
         UIView ---> UIToolbar ---> UIBarButtonItem ---> action
         touch.view is UIToolbarTextButton
         touch.view?.superview is UIToolbar
         */
        if touch.view?.superview is UIToolbar {
            return false
        }else{
            return true
        }
    }
}
标签: 事件冲突
共有 人打赏支持
粉丝 11
博文 106
码字总数 78651
×
asjoker
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: