当前位置: 首页 > 知识库问答 >
问题:

iOS 7 |导航栏/工具栏按钮非常靠近状态栏

翟俊名
2023-03-14

将导航栏或工具栏(情节提要)拖动到视图控制器时出现问题。

UINavigationBar:

如上图所示,右键几乎与状态栏重叠。

与UIToolbar发生相同的情况:

此视图控制器旨在用作模式,这就是我不使用UINavigationController的原因。

在另一节中,我使用了一个UINavigationController,它的外观与我预期的一样:

如何将UINavigationBar/UIToolbar拖到视图控制器而不重叠状态栏?

共有3个答案

费子濯
2023-03-14

请看我的答案,为了方便起见,我复制了以下内容:

https://stackoverflow.com/a/18912291/1162959

我发现的最简单的解决方法是将要显示的视图控制器包装在导航控制器中,然后显示该导航控制器。

MyViewController *vc = [MyViewController new];
UINavigationController *nav = [[UINavigationController alloc] 
    initWithRootViewController:vc];
[self presentViewController:nav animated:YES completion:NULL];
  • 不需要用框架弄脏。
  • 同样的代码适用于iOS6iOS7
  • 没有其他变通方法难看
  • 你可能想让你的XIB中没有导航栏或工具栏,然后通过编程将UIBarButtonims添加到导航栏中。幸运的是,这很容易
吉栋
2023-03-14

执行以下步骤

将导航栏拖动到Xib中的ViewController,将ViewController设置为其代理。请注意,导航栏应该位于(0,20)

在ViewController中,符合UINavigationBarDeationate

@interface ETPViewController () <UINavigationBarDelegate>

实施这种方法

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

位置栏告诉导航栏是否应该将其背景向上扩展到状态栏

闾丘选
2023-03-14

导航栏或工具栏必须位于(0,viewController.topLayoutGuide.length)位置,且导航栏的定位为uibarpositiontopalled。您应该将导航栏或工具栏的代理设置为视图控制器,并返回UIBarPositionTopAttached。如果定位正确,结果将出现在第三张图像中。

更多信息请点击此处:https://developer.apple.com/documentation/uikit/uibarpositioningdelegate?language=objc

 类似资料:
  • 我正在将我的应用程序迁移到iOS 7。为了处理状态栏问题,我添加了以下代码 这在正常情况下工作正常。如果我正在更改方向(应用程序仅支持横向方向)或显示任何视图控制器并取消模型视图控制器,则我的视图控制器对齐方式将更改。状态栏再次与我的视图控制器重叠。这段代码根本不起作用。请指导我解决此状态栏问题。 案例2:这就是我展示视图控制器的方式 裁判: 提前谢谢。

  • 使用LeftBarItems和RightBarItems时,我遇到过过多的UIBarButtonItem填充/间距(请参见下图)。UIBarButtonims上使用的图标不包含额外的填充。我想知道是什么原因造成的?

  • 我正在构建一个iOS网络应用程序。自从升级到iOS 7后,我注意到状态栏有很多问题。我想让状态栏显示为带黑色文本/图标的白色,但我似乎无法理解。 我尝试过的meta标签有: 只显示一个空的黑条,并向下移动内容: 显示带有白色文本/图标的黑色条: 显示带有白色文本/图标的白色条: 关于我做错了什么,或者如何让状态栏显示为带黑色文本的白色背景,有什么想法吗?

  • 在向应用添加导航栏和工具栏之前,我们需要决定使用哪种布局。 Framework7在这方面很自由,有3种不同类型的导航栏/工具栏布局,它们对应着在页面/视图中的不同位置。 静态布局 静态布局可能是最少使用的布局。在这种情况下,导航栏和工具栏只是可以滚动的页面内容的一部分,每个页面都有它自己的导航栏和工具栏: <body> ... <div class="views"> <div cl

  • 我最近遇到了协调器布局的问题。当我尝试创建简单的折叠工具栏布局(如本例所示)时,工具栏似乎位于状态栏下,如下图所示(在preLolipop设备上,一切都正常,因为应用程序不会在状态栏下绘制)。 我的活动布局的代码片段: My Styles(仅限21版),其中BaseAppTheme父级为Theme.AppCompat.Light.NoActionBar:

  • 我的应用程序中有一个视图控制器,它在情节提要中拖动了一个导航栏。它在iOS 6中运行良好,但在iOS 7中看起来是这样的: 状态栏和导航栏不应相互碰撞。我在堆栈溢出上看到了很多这样的问题,但它们对我没有多大帮助。 有些问题说我应该使用这个“self.edgesForExtendedLayout=UIRectEdgeNone”;但它不起作用。有人说,我应该删除导航栏并将其嵌入导航控制器中,但由于我的