状态栏区域未检测到点击手势?

Posted

技术标签:

【中文标题】状态栏区域未检测到点击手势?【英文标题】:The tap gesture isn't detected on the status bar area? 【发布时间】:2018-12-18 11:42:25 【问题描述】:

标题说明了一切。

有什么方法可以在 ios 11 中检测状态栏上的点击手势?

我已经为此搜索过,并按照建议进行了尝试,但它们似乎都是过时的答案。

我想知道是否有人已经想出了如何解决这个问题。

【问题讨论】:

【参考方案1】:

我在 AppDelegate.swift 中使用此代码

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
    super.touchesBegan(touches, with: event)

    let statusBarRect = UIApplication.shared.statusBarFrame
    guard let touchPoint = event?.allTouches?.first?.location(in: self.window) else  return 

    if statusBarRect.contains(touchPoint) 
      // tap on statusbar, do something
    

【讨论】:

您确定此代码有效吗?状态栏rect从一开始就不会调用touchBegan函数。 是的,在装有 iOS 11.2.6 的 iPhone X 上,触摸状态栏或凹槽时可以正常工作。 你是对的。我尝试在除其他视图之外的非常 AppDelegate 中实现它,它被检测到。谢谢。

以上是关于状态栏区域未检测到点击手势?的主要内容,如果未能解决你的问题,请参考以下文章

当 UIPopoverController 处于活动状态时,UIWebView 未检测到点击

在动画移动对象(UIView)上未检测到点击手势

Android6.0状态栏(系统下拉状态栏的定制)

我已经隐藏了导航栏和状态栏,现在屏幕边缘平移手势返回不起作用,这是典型的吗?

如何使用点击手势(iOS8 / Swift)在 pageViewController 上显示/隐藏状态栏

如何在 Expo 和 NativeBase 中调整状态栏