禁用个人热点通知

问题描述 投票:0回答:4

启用个人热点会下推视图,相关子视图也会下推视图。

如何以编程方式禁用个人热点通知? (例如,即使热点打开,如何将 iPhone 状态栏限制为原始大小?)

ios iphone notifications statusbar
4个回答
1
投票

我很晚才发现个人热点不只是在状态栏上添加 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;
}

0
投票

Apple 文档对状态栏的描述不是很详细,尤其是。当您使用热点、地图、通话等时出现的第二行

即使有多个正在运行,也只有一行。

我不知道第3方应用程序是如何出现的,但提问者特别询问了个人热点,这是一项系统服务。

我怀疑任何人都可以控制显示器,除非用户关闭服务。

您可能必须采用“困难”方式”。您应该隐藏主状态栏,然后绘制自己的自定义状态栏。

顺便说一句,苹果说不要这样做:

使用系统提供的状态栏。人们期望状态栏在系统范围内保持一致。不要用自定义状态栏替换它。

https://developer.apple.com/ios/ human-interface-guidelines/bars/status-bars/


0
投票

这是另一种方法,但它有效。 首先在项目的 Info.plist 中包含一个新密钥:

状态栏最初是隐藏的:YES

然后,在您的 AppDelegate 中,您可以在

didFinishLaunchingWithOptions
设置:

[application setStatusBarHidden:NO];

这将在启动屏幕期间隐藏热点栏,然后在应用程序启动时再次显示。


-1
投票

如果禁用状态栏,则会自动禁用热点栏。

© www.soinside.com 2019 - 2024. All rights reserved.