启用个人热点下推视图和相关子视图下推。如何以编程方式禁用个人热点通知?(即使 HOT SPOT 开启,我如何将 iPhone 状态栏限制为原始大小?)
4 回答
我发现Personal Hotspot 不仅在状态栏上增加了20 点,而且还弄乱了依赖动画师中重力放置点的视图。我添加了在布置视图之前检查状态栏高度的代码。如果不是20,那么可能是热点,所以我只是隐藏状态栏。不是一个理想的解决方案,但到目前为止有效。
- (BOOL)prefersStatusBarHidden {
if ([UIApplication sharedApplication].statusBarFrame.size.height == 20) {
NSLog(@"Status bar is 20 so returning NO for hidden");
return NO;
}
NSLog(@"Status bar is not 20 so returning YES for hidden");
return YES;
}
如果您禁用状态栏,则自动禁用热点栏。
Apple 文档对状态栏的描述不是很好,尤其是。使用热点、地图、通话等时出现的第二行。
即使不止一个在运行,也只有一个额外的行。
我不知道第 3 方应用程序是如何出现的,但提问者专门询问了个人热点,这是一项系统服务。
我怀疑显示器可以由任何人控制,除非用户关闭服务。
您可能必须以“硬”的方式进行操作。您应该隐藏主状态栏,然后绘制自己的自定义状态栏。
顺便说一句,Apple 说不要这样做:
使用系统提供的状态栏。人们希望状态栏在系统范围内保持一致。不要用自定义状态栏替换它。
https://developer.apple.com/ios/human-interface-guidelines/bars/status-bars/
这是一种替代方法,但它有效。首先在项目的 Info.plist 中包含一个新键:
状态栏最初是隐藏的:是
然后,在您的 AppDelegate 中,didFinishLaunchingWithOptions
您可以设置:
[application setStatusBarHidden:NO];
这将在启动屏幕期间隐藏热点栏,然后在应用程序启动时再次显示它。