iOS 7中导航栏的高度是多少?


70

我刚刚使用默认的Master Details模板创建了一个简单的iOS 7应用。

MasterViewController.mviewDidAppear方法,我登录了

self.navigationController.navigationBar.frame.size.height
self.navigationController.navigationBar.frame.origin.y

并分别收到44和20。这看起来很奇怪,因为据我所读,iOS 7中的导航栏应为64点高,并从0点开始,以便它位于状态栏的下方。我读的是

1)iOS 7 UI过渡指南

由于状态栏是透明的,因此其后面的视图通过

2)在导航栏中使用背景图像

如果您的应用程序使用自定义图像作为该栏的背景,则需要提供一个“ taller”图像,使其在状态栏后面延伸。导航栏的高度从44点(88像素)更改为64点(128像素)。

Answers:


91

导航栏和状态栏之间有区别。令人困惑的部分是,它看起来像屏幕顶部的一个实体特征,但是实际上可以将这些区域分为两个不同的视图。状态栏和导航栏。状态栏从y = 0到y = 20点,导航栏从y = 20到y = 64点。因此,导航栏(页面标题和导航按钮所在的位置)的高度为44点,而状态栏和导航栏的总高度为64点。

这是一个很好的资源,可以解决此问题以及iOS7中的许多其他大小调整特性:http ://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/


8

我从《 Programming iOS 7》一书中得到了这个答案,“栏位置和栏指标”部分

如果导航栏或工具栏(或搜索栏(本章前面已讨论过))占据了屏幕的顶部,则iOS 7约定是应增加其高度以使其与透明状态栏重叠。为了实现这一点,iOS 7引入了条形位置的概念。

UIBarPositionTopAttached

指定该栏及其屏幕包含在屏幕的顶部。具有此位置的条将其背景向上延伸,从而允许其背景内容通过状态栏显示。在iOS 7.0和更高版本中可用。


检查了这一点更多的信息上UIBarPositionTopAttached:developer.apple.com/library/ios/documentation/uikit/reference/...
JaredH
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.