我开发了一款自下而上使用滑动手势的应用。它在iOS 6中完美运行,但现在iOS 7出现了,它的工作次数可能是25次中的一次:我几乎每次都得到iOS 7控制中心。显然,可以在“设置”中禁用控制中心,但这取决于手机所有者,我无法控制。所以我的问题是,有没有办法在我的应用程序运行时禁用控制中心(或者更可能是“活动”,因为如果用户没有主动使用我的应用程序,我希望控制中心返回)。如果没有,有哪些替代方案?重新定位/重新设计该功能是唯一的解决方案吗?
答案 0 :(得分:51)
实际上有一个选项。你无法禁用它。但是你可以防止意外发射。只需禁用状态栏即可。然后在滑动时,将提示用户是否必须启动控制中心。它不会在一次刷卡中启动。而是在第一次滑动时出现箭头,用户需要单击并拖动箭头以启动控制中心,从而防止意外启动。使用此代码禁用状态栏。
您可以在IOS7中使用此委托禁用状态栏:
- (BOOL) prefersStatusBarHidden
{
return YES;
}
这个方法在IOS6.1和之前:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
答案 1 :(得分:13)
从iOS 11 SDK(在Xcode 9中编译)开始,另外实现prefersStatusBarHidden:
<强>目标-C:强>
- (BOOL) prefersStatusBarHidden
{
return YES;
}
Swift 4 +:
override var prefersStatusBarHidden: Bool { return true }
您还需要实施preferredScreenEdgesDeferringSystemGestures:
<强>目标-C:强>
- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures{
return UIRectEdgeAll;
};
Swift 4 +:
override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
return .all
}
否则控制/通知中心会直接显示;而不是首先显示带有向上/向下箭头的灰色框,需要向上/向下拖动。
答案 2 :(得分:11)
没有替代品,真的。您可以做的最好的事情是警告用户并要求他们转到设置以关闭它。
实际上,只要问这个就会失去很多用户,所以你应该改变手势。