【问题标题】:What is the height of Navigation Bar in iOS 7?iOS 7 中导航栏的高度是多少?
【发布时间】:2013-12-08 06:46:06
【问题描述】:

我刚刚使用默认的 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 Transition Guide

因为状态栏是透明的,所以后面的视图显示 通过

2) Using Background Image in Navigation Bar

如果您的应用使用自定义图像作为栏的背景,您将 需要提供一个“更高”的图像,以便它在后面向上延伸 状态栏。导航栏高度由 44 点(88 像素)到 64 点(128 像素)。

【问题讨论】:

    标签: ios7 height frame statusbar navigationbar


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我从 Programming iOS 7, Bar Position and Bar Metrics 一书中得到了这个答案

      如果导航栏或工具栏 — 或搜索栏(前面讨论过 这一章)——是占据屏幕顶部,iOS 7 惯例是它的高度应该增加以覆盖 透明状态栏。为了实现这一点,iOS 7 引入了 条形位置的概念。

      UIBarPositionTopAttached

      指定栏在屏幕顶部,以及它的 包含视图。具有此位置的条形图绘制它们的背景 向上扩展,允许他们的背景内容显示出来 状态栏。适用于 iOS 7.0 及更高版本。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-27
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 2017-09-19
      相关资源
      最近更新 更多