单击状态栏时执行操作

Perform action when status bar is clicked

我见过像 Messenger 这样的流行应用对它们的状态栏做了一些处理。当你打电话给某人并退出应用程序时,会出现一个红色的状态栏。如果你点击它,你会回到应用程序。单击状态栏时,我一直在搜索执行操作。我不确定它是否涉及状态栏。不管怎样,如果你知道如何执行一个动作,能帮助我就好了:)我不想因为我太懒惰而只在这里发帖。实际上很难找到有关此的信息。

首先获取statusView

extension UIApplication {
    var statusBarView: UIView? {
        return value(forKey: "statusBar") as? UIView
    }
}

为其添加手势

let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))

let stV = UIApplication.shared.statusBarView

stV?.addGestureRecognizer(tap)

stV?.isUserInteractionEnabled = true

///

@objc func handleTap(_ sender: UITapGestureRecognizer) {
    print("status clicked")
}

状态栏是 iOS 平台的一部分,与您的应用无关。您唯一可以真正控制的是它的外观。您在不同情况下看到的 'different' 状态栏,例如当您正在进行 phone 通话时或当您的位置被跟踪时等,都是由 OS 本身驱动的。

如果您真的需要向状态栏添加一个动作,您最好在状态栏上使用 'fake' 透明视图并向其添加手势,而不是将其捕获为UIApplication 的子视图。这是 private API 用法的示例。苹果一直反对这种做法,甚至在某些情况下拒绝了应用程序。