如果你有一个全屏iOS应用程序,并且你想阻止通知中心被拉下来,你可以和如何?
您还可以在加载应用时屏蔽通知提醒或横幅广告吗? (我认为这是肯定无法确定的,但想要以防万一。)
答案 0 :(得分:20)
根据我的经验,默认情况下,全屏应用(statusBarHidden = YES
)的通知中心行为略有不同:向下滑动之前状态栏占用的区域只会显示一个小标签。只有滑动选项卡才会显示通知中心。到目前为止,这足以防止我意外激活。
目前,没有用于操纵通知中心行为的公共API。我认为应用程序不太可能曾能够阻止通知的外观,并且应用程序能够阻止通知中心出现的可能性稍微小一些。 iOS以开发人员自由为代价,提供一致的用户体验体验。如果我是一个无意识的用户,我可以看到被这种功能感到沮丧。
所有这一切,总是存在未记录的API的黑暗面。如果你能在越狱设备上使用那些聪明能力,我不会感到惊讶,但这不是我的杯茶。
答案 1 :(得分:6)
我刚刚想出来了。我正在开发一个横向运行的游戏,每当我触摸左侧时,都会出现通知中心选项卡。要解决此问题,您需要添加以下内容:
setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft
我在setStatusBarHidden之后添加了这个,并且我不再遇到通知选项卡的问题。
希望有所帮助。
答案 2 :(得分:1)
iOS 11中引入了一个API,同时改变了通知中心(和控制中心)的显示方式,从而允许您指定所需的行为。
UIViewController.preferredScreenEdgesDeferringSystemGestures
在iOS 11+中,即使隐藏状态栏,从屏幕的顶部滑动时,通知中心也始终会下拉。 preferredScreenEdgesDeferringSystemGestures
允许您指定滑动屏幕边缘不应触发标准系统用户界面,而是提供一个拉出选项卡,用户必须再次滑动该选项卡才能带出系统用户界面。
此功能适用于用户频繁滑动的游戏,不希望引入系统UI而不是控制游戏。对于像这样的身临其境的应用程序,您可以返回.all
来指定您不希望任何系统UI在您第一次滑动屏幕的任何边缘时都出现,而应该使用应用程序自己的手势。>
请注意,这将禁用从底部滑动一次以关闭没有主页按钮的iPhone和iPad上的应用程序的功能-用户将不得不滑动两次以关闭该应用程序。
仍然无法完全禁用应用程序中的Notification Center,也无法阻止在应用程序处于前台时显示通知。
答案 3 :(得分:-23)
我构建了一个非常简单的代码片段,以编程方式解决此问题。我的应用程序委托中有一个计时器设置,每次运行时每0.2秒运行一次,它会保持状态栏的方向移动,因此不会影响游戏。我从未在我的应用程序中体验过烦人的通知中心!唯一的问题是音量控制不断旋转,可能很烦人,但它不如通知中心那么烦人
int tick=0;
-(void)toggleNC
{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
tick++;
if (tick==1)
{
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
}
if (tick==2){
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
}
if (tick==3){
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
}
if (tick==4){
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortraitUpsideDown];
tick=0;
}
}