mik*_*hik 28 ios swipe-gesture ios7 control-center
我开发了一个自下而上使用滑动手势的应用程序.它在iOS 6中完美运行,但现在iOS 7出现了,它的工作次数可能是25次中的一次:我几乎每次都得到iOS 7控制中心.显然,可以在"设置"中禁用控制中心,但这取决于手机所有者,我无法控制.所以我的问题是,有没有办法在我的应用程序运行时禁用控制中心(或者更可能是"活动",因为如果用户没有主动使用我的应用程序,我希望控制中心返回).如果没有,有哪些替代方案?重新定位/重新设计功能是唯一的解决方案吗?
Har*_*nan 51
实际上有一个选择.你无法禁用它.但是你可以防止意外发射.只需禁用状态栏即可.然后在滑动时,将提示用户是否必须启动控制中心.它不会在一次刷卡中启动.而是在第一次滑动时出现箭头,用户需要单击并拖动箭头以启动控制中心,从而防止意外启动.使用此代码禁用状态栏.
您可以在IOS7中使用此委托禁用状态栏:
- (BOOL) prefersStatusBarHidden
{
return YES;
}
Run Code Online (Sandbox Code Playgroud)
而这个方法在IOS6.1和之前:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
Run Code Online (Sandbox Code Playgroud)
Jea*_*Luc 13
从iOS 11 SDK(在Xcode 9中编译)开始,另外还要实现prefersStatusBarHidden:
Objective-C的:
- (BOOL) prefersStatusBarHidden
{
return YES;
}
Run Code Online (Sandbox Code Playgroud)
Swift 4+:
override var prefersStatusBarHidden: Bool { return true }
Run Code Online (Sandbox Code Playgroud)
您还需要实现preferredScreenEdgesDeferringSystemGestures:
Objective-C的:
- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures{
return UIRectEdgeAll;
};
Run Code Online (Sandbox Code Playgroud)
Swift 4+:
override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
return .all
}
Run Code Online (Sandbox Code Playgroud)
否则控制/通知中心直接出现; 而不是首先显示带有向上/向下箭头的灰色框,需要向上/向下拖动.
归档时间: |
|
查看次数: |
16639 次 |
最近记录: |