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