2013-11-23 33 views
64

我刚刚使用默认的“主细节”模板创建了一个简单的iOS 7应用程序。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 Transition Guide

因为状态栏是透明的,它背后的视图显示 通过

2)Using Background Image in Navigation Bar

如果应用程序使用一个自定义图片作为吧台的背景,你需要提供一个“更高”的图片,以便它分机结束于 状态栏后面。导航栏的高度从44点(88 像素)更改为64点(128像素)。

回答

7

我从书上编程的iOS 7,型材的位置和酒吧度量这个答案

如果导航条或工具栏或搜索栏(本章前面讨论的 )要占据屏幕的顶部,则惯例是应将其高度增加至低于透明状态的高度 酒吧。为了实现这一点,iOS 7引入了酒吧位置的 概念。

UIBarPositionTopAttached

指定栏在屏幕的顶部,以及其含有 视图。具有此位置的酒吧将其背景向上延伸 ,允许其背景内容通过 显示状态栏。适用于iOS 7.0及更高版本。

+0

检查了解更多有关UIBarPositionTopAttached的信息:https://developer.apple.com/library/ios/documentation/uikit/reference/UIBarPositioningDelegate_Protocol/index.html – JaredH

82

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

下面是解决这个问题,在iOS7其他一些施胶特质沿着一个很好的资源: http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/