- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想在我的 iOS v5 通用应用程序中切换状态栏。
但发现其他人似乎有 UIViews(在我的例子中是添加到主视图的 subview )如果您随后旋转设备(我正在使用模拟器),只会回收隐藏状态栏留下的 20px
我的观点是通过编程完成的。
我尝试了通过谷歌搜索找到的一些建议,但似乎都没有用。即更改自动调整大小/掩码、wantsFullScreenLayout、setNeedsLayout,在 IB 中“使用全屏”。
我终于意识到我正在将我的 View frame height 设置为 0 并将它的 bounds height 设置为 [[UIScreen mainScreen ] applicationFrame] size.height
我想到的是:将 View frame height 设置为 -20 并将其 bounds height 设置为 [[UIScreen mainScreen] applicationFrame] size.height+20
在 viewDidLoad 中。
CGRect theDeviceRect= [[UIScreen mainScreen] applicationFrame];
newMap.frame = CGRectMake(0, -20, theDeviceRect.size.width, theDeviceRect.size.height+20);
我在 willAnimateRotationToInterfaceOrientation: 委托(delegate)中也有这个。
现在当我切换状态栏时:
- (void) toggleStatusBarAction:(id)sender{
BOOL istathidden= [[UIApplication sharedApplication] isStatusBarHidden];
[[UIApplication sharedApplication] setStatusBarHidden:!istathidden withAnimation:UIStatusBarAnimationFade];
}
一切都按预期工作。但我想看看我的解决方案是好是坏,如果我遗漏了什么?:
非常感谢。MH
最佳答案
我做的是:
在这段代码之后:
[[UIApplication sharedApplication] setStatusBarHidden:NO];
我立即执行:
CGRect originalFrame = self.view.frame;
originalFrame.origin.y = 20.0;
self.view.frame = originalFrame;
这会将框架“刷新”到正确的位置。不是最佳解决方案,但它有效。
在您的示例中,您可能需要根据 istathidden 将 y 动态设置为 0 或 20。
2012 年 9 月 2 日编辑:关闭模态视图 Controller 时更好的解决方案:
[[UIApplication sharedApplication] setStatusBarHidden:NO];
self.view.frame = [[UIScreen mainScreen] applicationFrame];
关于objective-c - 当设置 setStatusBarHidden : in iOS v5 app. 时留有空白。这是修复它的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669025/
我有一个 UIView,我想将其添加到 keyWindow 中,以便它覆盖所有内容(包括 StatusBar)。当我添加 View 时,我使用以下代码删除了状态栏: [[UIApplication s
如果我使用这种方法,是否可以通过某种方式将屏幕设置为完整的 320x480 而不是隐藏状态栏之前的 320x460? 非常感谢,-代码 最佳答案 将这段代码写在AppDelegate.m文件中 [[U
在我的 UIViewController 中,我有: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animate
我已经尝试了所有我能找到的解决方案,包括:setStatusBarHidden is deprecated in iOS 9.0但它们都不适用于我的应用程序。 这是一个简单的单 View 应用程序。有
今天我的应用程序获得了批准,但我收到用户发来的电子邮件说它崩溃了。我发现了 [[UIApplication sharedApplication] setStatusBarHidden:YES with
我发现设置后 [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO] 在 viewDidLoad 处,如果我想将图
我在 StackOverflow 上找到了有关该问题的信息,但无法解决我的问题。 Calling the appropriate setStatusBarHidden per iOS version
当 setStatusBarHidden:NO 设置为 View 加载时,UINavigationBar 和其他元素立即对齐在 StatusBar 下方。但是,当 setStatusBarHidden
我看到在 iOS 9 中,setStatusBarHidden(_:withAnimation:) 现在已被弃用,文档说使用 [UIViewController prefersStatusBarHid
所以我的应用程序在 AppDelegate 中将状态栏设置为隐藏,就像这样。它按预期工作。 [[UIApplication sharedApplication] setStatusBarHidden:
我有一个隐藏了状态栏的应用程序。在主视图中,我使用 UIButtons 加载 subview View 。出于某种原因, subview 显示时带有隐藏的状态栏,但是,UI View 不会为此进行调整
我正在将我的代码从 iOS 8 升级到 iOS 9。我的程序中有一个代码片段[[UIApplication applicationName] setStatusBarHidden:YES];. 我收到
我是 iOS 开发新手。我只想在启动相机时隐藏状态栏,这样相机控件就不会与状态栏重叠。我找到了添加此行的解决方案: [[UIApplication sharedApplication] setStat
我想在我的 iOS v5 通用应用程序中切换状态栏。 但发现其他人似乎有 UIViews(在我的例子中是添加到主视图的 subview )如果您随后旋转设备(我正在使用模拟器),只会回收隐藏状态栏留下
我的 Root View Controller 中有代码观察 -[UIApplication sharedApplication] 的 @"statusBarHidden" 属性并调整其 View 的
我是一名优秀的程序员,十分优秀!