我想在我的一个视图中使用自定义UINavigationBar,它不是任何UINavigationController层次 struct 的一部分.当我将UINavigationBar拖入故事板时,它显示如下:

UINavigationBar

这个条是44px,如果状态条不共享这个空间就足够了.因为iOS7允许我们使用整个屏幕,包括状态栏的空间,所以UINavigationBar的高度应该是64像素,而不是44像素.

如果我将视图连接到UINavigationController的层次 struct ,那么它将显示正确的:

UINavigationController

我在某个地方读到ifUINavigationBar将属性barPosition:设置为UIBarPositionTopAttached,那么该条将是64px.然而,这是一处readonly级的房产.

我的搜索结果只显示了一些我认为是"工作"的东西.通过在UIViewController之前添加一个无用的UINavigationController,我可以假装有一个层次 struct ,它会自动添加带有64px的UINavigationBar.

有没有办法让一个覆盖64px的"无赖"(没有导航控制器的帮助)UINavigationBar

(我不是说默认情况下UINavigationBar应该是64px,但inspector中应该有一个选项)

(我也看到有人用编程的方法来解决这个问题.即使这些答案有效,我仍然需要在故事板上记住这一点(一个缺口).我想知道的是,是否有可能在故事板中设置这个,或者更确切地说,为什么不允许呢?)

推荐答案

您可以用另一种方式将属性barPosition设置为UIBarPositionTopAttached

  1. 将代理添加到UINavigationBar.
  2. 在delegate类中实现-positionForBar::

    - (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar
    {
        return UIBarPositionTopAttached;
    }
    

导航栏的顶部也必须定位到顶部布局指南.

Objective-c相关问答推荐

CoreData:错误:无法在 NSManagedObject 类上调用指定的初始化程序

协议与类别

如何获取目标名称?

XCTAssertEqual 错误:(3)不等于(3)

具有动态高度的子视图的自动布局 UIScrollView

iOS UIImageView 缩小图像在 iPad 2 上产生锯齿图像

UITableViewCell 突出显示时使标签的背景清晰

在 Xcode 中为无法识别的 Select 器创建断点

静态和动态单元格的 UITableView 混合?

更改 UIDatePicker 字体 colored颜色 ?

从 Storyboard 实例化视图控制器与创建新实例

额外的 75 秒从何而来?

带有 AVPlayer 的多个视频

警告的含义在演示过程中!

声音在 iPhone 模拟器中不起作用?

Lipo错误!!无法打开输入文件

如何将 nil 添加到 nsmutablearray?

Objective-C 异常

状态栏文本 colored颜色 iOS 7

目标 C:读取文本文件