objective-c - 检测添加的 subview 的框架原点何时位于状态栏后面

标签 objective-c ios

我正在将 subview 添加到我的 View Controller 的顶部,将添加的框架的原点 y 设置为 0

aView.frame.origin.y = 0.0;

在一个实例中, View 出现在状态栏后面。这可以通过设置 origin.y = 20.0;

轻松纠正

无论原因是什么,我如何检测是否需要将其设置为 20.0?换句话说,如何知道页面顶部是否在状态栏后面?

最佳答案

您可以查看 window.screen.applicationFrame 以查看坐标,以及查看 UIApplication 的 statusBarOrientation 和 statusBarHidden 属性。但是有条件地将您的框架顶部设置为 0 或 20 并不是真正的解决方案 - 您希望您的框架被设置为它可以做正确的事情而无需更改它。 0,0 应始终位于 View 的左上角。

如果您在创建项目时使用了基于 View 的应用程序模板,那么几乎所有内容都应该正确设置 - 只需确保在 XIB 中指定灰色或黑色状态栏即可。

对于直接添加到窗口的以编程方式创建的 View Controller ,您可能需要:

myViewController.frame = window.screen.applicationFrame;

关于objective-c - 检测添加的 subview 的框架原点何时位于状态栏后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141479/

相关文章:

objective-c - iOS7 应用内购买回执服务器验证的 Base64 编码怪异

ios - 在 iOS 中使用 Swift 消除 switch 语句中的重复

ios - 为什么 AFNetworking 在第一次请求时挂起?

ios - 为 UIWebkit 赋予 Value 并更改实例化 ViewController [Swift 4]

ios - 删除 Horizo​​ntal StackView 内 TextView 中的 Padding 顶部

ios - NSDecimalNumber decimalNumberWithString : ignores current locale

iphone - 从 Storyboard 实例化 ViewController 时崩溃

ios - 为什么我每次需要使用它时都必须实例化 appdelegate?

ios - 无法将 -Objcflags添加到 iOS 项目

android - 现有的 WOPI 主机?