在 iOS 中,如果您从屏幕上垂直滑动到屏幕上,您将获得下拉通知屏幕。
如果您将状态栏设置为隐藏(全屏应用程序)然后向下滑动您会得到一个提示下拉“选项卡”,这太棒了!(见下面的截图)
无论如何显示状态栏,以便用户可以看到时间和他们的服务和电池百分比以及所有内容,然后我们还有提示下拉“选项卡”显示而不是它只是自动滑下整个通知中心?
在 iOS 中,如果您从屏幕上垂直滑动到屏幕上,您将获得下拉通知屏幕。
如果您将状态栏设置为隐藏(全屏应用程序)然后向下滑动您会得到一个提示下拉“选项卡”,这太棒了!(见下面的截图)
无论如何显示状态栏,以便用户可以看到时间和他们的服务和电池百分比以及所有内容,然后我们还有提示下拉“选项卡”显示而不是它只是自动滑下整个通知中心?
我相信没有直接的机制,但可以应用一个技巧来实现这一点。但这同样不会给出您在这里所期望的确切解决方案。但是让我分享一下我的想法。
在 UIViewController 子类中实现 touchBegan 方法并捕获触摸事件的起点。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
UITouch *touch = [触摸任何对象];
CGPoint startPoint = [触摸 locationInView:self.view];
然后您可以将y坐标值与 30/40 像素进行比较(这是应用屏幕检测到通知拉动事件的大约像素高度)
如果(startPoint.y <= 40){
现在您可以将statusBarHidden属性设置为NO
@注意事项:-
在 appDelegate 中,您需要添加第二个 UIWindow(属性 STRONG 保留),它是您的应用程序的完整大小,具有清晰的背景。
将 UIWINDOWS 级别设置为:setWindowLevel:UIWindowLevelStatusBar+1.0f
然后您需要添加第二个 VC 并将其设置为第二个 UIWindow 的子视图。
在那个 VC.m 你做 touchesBegan 并且如果 location.y 在状态栏的高度乘以 2 的区域(高度 * 2,因为你可以将通知从比状态栏低一点的地方拉下来)然后你设置状态栏隐藏并调用prefersStatusBarHidden
YES 和setNeedsStatusBarAppearanceUpdate
*(请注意,您必须创建新的 UIWindow 和 VC,否则您将无法在状态栏位置检测到 touchesBegan)。
然后一旦 touchesEnded 或 touchesMoved 在该区域下方,您可以使状态栏再次可见。
这会使状态栏闪烁片刻,并导致出现三角形。
现在将您的整个应用程序功能移动到第二个 VC
证据在布丁中: