Objective c 如何判断视图';在iOS7中,s viewcontroller扩展到状态栏下方

Objective c 如何判断视图';在iOS7中,s viewcontroller扩展到状态栏下方,objective-c,ios7,statusbar,Objective C,Ios7,Statusbar,如何判断视图的viewcontroller是否延伸到iOS7中的状态栏下方 我想第一个问题是获取视图的当前viewcontroller,那么如何判断该viewcontroller是否扩展到状态栏下方 澄清/推理 我需要知道这一点,因为我正在向从顶部滑入的视图添加一个信息面板,需要填充状态栏下方的视图。根据viewController的edgesForExtendedLayout属性,0的位置可以是窗口的最顶部,也可以是状态栏的正下方。我需要知道我在处理什么,这样我才能相应地抵消面板 示例A: 在

如何判断视图的viewcontroller是否延伸到iOS7中的状态栏下方

我想第一个问题是获取视图的当前viewcontroller,那么如何判断该viewcontroller是否扩展到状态栏下方

澄清/推理 我需要知道这一点,因为我正在向从顶部滑入的视图添加一个信息面板,需要填充状态栏下方的视图。根据viewController的edgesForExtendedLayout属性,0的位置可以是窗口的最顶部,也可以是状态栏的正下方。我需要知道我在处理什么,这样我才能相应地抵消面板

示例A: 在包含在简单UIViewController中的视图中显示面板(Y位置为0将使面板位于状态栏下方)

例B:
使用不透明的导航栏(Y位置为0将面板置于状态栏的正下方。实际设备Y位置为20)在UINavigationController中包含的视图中显示面板。

您可以在开发时检查视图控制器是否延伸了条下的边,查看情节提要中的以下内容,选择视图控制器并搜索属性检查器:

您还可以通过编程方式检查视图控制器的变量edgesForExtendedLayoutEXTENDELLAYOUTINCLUDESOPAQUERBARS


有关更多信息和详细说明,请查看Apple Docs中的以下参考资料

如果您知道正在使用的视图控制器,可以在窗口中获取rect

CGRect rectInWindow = [self.view convertRect:self.view.bounds toView:self.view.window];
如果
rectInWindow.orig.y==0
rectInWindow.size.height==self.view.window.bounds.size.height
,则扩展


注意:这只在
-viewdide出现后有效:

我不是说迂腐,但视图控制器不可见。我想你是指视图控制器的
视图
属性。edgesForExtendedLayout和ExtendedLayoutCludeOpaquebar是视图控制器的属性,而不是视图,这就是为什么。谢谢,这就是我要找的。虽然我不得不把自我界限改成自我观点。bounds@TravisBeck是的,
self.view.bounds
,很抱歉。我编辑了我的答案来修正它。