导航栏标题不在 iPhone 的纵向模式中居中

Posted

技术标签:

【中文标题】导航栏标题不在 iPhone 的纵向模式中居中【英文标题】:Navigation bar title is not centred in iPhone's portrait mode 【发布时间】:2015-07-31 02:45:15 【问题描述】:

我使用大小为 wAny 和 hAny 的 Xib 文件创建了一个 ViewController,并且我使用了自动布局和约束来适应 UI 所有设备和所有方向。

一切正常,但是当我在 iPhone 上运行应用程序时,导航栏的纵向模式标题不居中,而将其旋转到横向模式时,标题居中。

我使用以下代码来设置标题

self.title = @"Download Schedule";

已经尝试过: 我试图将较小字体大小的自定义 UILabel 设置为导航栏的标题视图,但我仍然将它放在左侧。

这是我的右键代码

 //add right bar button for more options
    UIView *navBarButtonsView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
    UIBarButtonItem *item0 = [UIBarButtonItem negativeSpacerWithWidth:5];
    UIButton *moreButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
    [moreButton setBackgroundImage:[UIImage imageNamed:@"ic_web"] forState:UIControlStateNormal];
    [moreButton addTarget:self action:@selector(addNewSchedule) forControlEvents:UIControlEventTouchDown];
    [navBarButtonsView addSubview:moreButton];

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:navBarButtonsView];
    self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:item0, backButton, nil];

【问题讨论】:

【参考方案1】:

还有其他事情正在发生 - 你没有告诉我们的事情。我怀疑您设置rightButtonItems 的方式有问题,以至于有不可见的按钮占用了右侧的空间。我只能通过故意使右侧按钮变宽来重现此问题:

所以我怀疑你对右键应用了很大的宽度,或者有额外的不可见的右键项目占用了右侧的空间。

【讨论】:

很好,但这只是证明了我的观点。注释掉那个右键项目代码,你会看到标题的问题消失了——从而证明我是对的——是你的右键项目导致了问题。 完美!!!!!!是的,您的观点是正确的,这是导致问题的正确按钮。

以上是关于导航栏标题不在 iPhone 的纵向模式中居中的主要内容,如果未能解决你的问题,请参考以下文章

导航栏在横向模式下向上移动 - iOS

在标题/导航栏中居中徽标[重复]

横屏模式下 iOS 5 iPad 上的导航栏背景图像

在 Bootstraps 导航栏中居中图像/徽标?

在 Bootstrap 导航栏中居中品牌徽标

在响应式引导导航栏中居中内容