2

当控制中心出现在 iOS 7 上时我遇到了问题。基本上,当控制中心出现时会触发 applicationDidEnterBackground。

但是在我的方法中,我想检测它是否只是控制中心打开或通知中心,因为我会在该状态下以不同的方式对待 applicationDidEnterBackground。

任何帮助,将不胜感激。

4

1 回答 1

4

我刚刚发布了一个小的 UIWindow 子类,它正是这样做的。您只需订阅 NSNotification 并可以对打开控制中心的用户做出反应。Github 上的详细说明和设置:AAWindow

实现这一点的方法是结合使用 NSTimer 和覆盖 UIWindow 中的 sendEvent 来接收所有触摸而不阻塞它们。因此,您基本上会收到所有触摸,检查它们是否靠近屏幕的下边缘,如果是,则设置一个半秒的计时器,如果在此计时器运行期间调用 applicationWillResignActive,您几乎可以确定 ControlCenter 已打开。如果没有状态栏,时间必须有所不同,因为应用程序处于全屏状态,用户最多可能需要 3 秒才能启动控制中心。

于 2015-03-19T12:46:31.050 回答