iOS7 iphone rightBarButtonItem 标题未正确居中/显示

Posted

技术标签:

【中文标题】iOS7 iphone rightBarButtonItem 标题未正确居中/显示【英文标题】:iOS7 iphone rightBarButtonItem Title not centered/displayed correctly 【发布时间】:2013-10-10 09:11:24 【问题描述】:

我正在设置 self.navigationItem.rightBarButtonItem = self.editButtonItem; 在 viewDidLoad 这在 ios

当有一个后退按钮并且至少有一次我没有点击它时:

点击后我得到:

按钮的背景在应用委托中设置:

    // Change the appearance of back button
UIImage *backButtonImage = [[UIImage imageNamed:@"backbtn"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 6)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

// Change the appearance of other navigation button

UIImage *barButtonImage = [[UIImage imageNamed:@"btn"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
[[UIBarButtonItem appearance] setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

【问题讨论】:

您应该将其添加为答案并将其标记或删除问题。 不幸的是,我不清楚我是否不应该在 iOS 7 中这样做?我不应该为按钮和条形按钮使用背景图像吗?我应该能够做到这一点吗?我也无法将其标记为答案。 你有没有把右栏按钮的标题居中。如果是这样你是怎么做到的 不,仍然是个问题。仍然想知道如何解决这个问题。我认为用表格单元格中的按钮替换附件图像时会出现类似的问题,但这可能是无关的。 遇到同样的问题-_-如果找到任何解决方案我会发布答案 【参考方案1】:

在iOS7下导航也有同样的问题...

得到了几个答案hereandthere,但它们似乎没有帮助。 如果您使用 UINavigationBar 的 backIndicatorImage 它会粘在顶部,我不知道如何修复它。

我最终做了here的建议

像这样创建一个 UIBarButtonItem:

UIBarButtonItem* backBtn = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                            style:UIBarButtonItemStylePlain
                                                           target:self
                                                           action:@selector(backButtonAction:)];

backBackgroundImage = [UIImage imageNamed: @"back_btn"];
backBackgroundImage = [backBarButtonBackground resizableImageWithCapInsets:
                                                          UIEdgeInsetsMake(0.0, 14.0, 0.0, 5.0)];
[backBtn setBackgroundImage:backBackgroundImage
                   forState:UIControlStateNormal
                 barMetrics:UIBarMetricsDefault];

[backBtn setTitlePositionAdjustment:UIOffsetMake(5, 0) forBarMetrics:UIBarMetricsDefault];

然后将其用作导航控制器上的后退按钮。

【讨论】:

这可能会或可能不会工作,具体取决于它在哪里完成,我试图在应用程序委托中设置导航项按钮,以便它们在任何地方重复使用。所以我不确定为标题设置偏移量是否有效,但会试一试。现在我一起删除了图像的使用。这也可能无法解决第一次在导航栏上使用图像不显示的问题。 是的,你是对的。但正如您所见,iOS7 只是强迫您在每个 ViewController 上执行此操作。还要注意以下奇怪的事情:系统控制器(例如 MFMailComposeViewController)会在模态显示时设置你的 leftBarButtonItem 的字体,所以要小心那个东西。不确定它是否会被记录在案。 另外,我用编辑按钮得到了同样的东西。我也不得不用一个自定义的替换它。

以上是关于iOS7 iphone rightBarButtonItem 标题未正确居中/显示的主要内容,如果未能解决你的问题,请参考以下文章

如何为 iphone 3.5 和 iphone 4 英寸屏幕(ios 6 和 ios7)设计 Single xib?

iOS7/iphone 5s home键点击API

IOS应用在ios7(iPhone5/iPhone5s)上不能全屏显示

iOS7 iphone rightBarButtonItem 标题未正确居中/显示

iOS7 iPhone 5 的 Xcode 6 LaunchScreen.xib 窗口大小错误

Jquery DOM 准备就绪 - 不是每次都在 iphone 5 (ios7) 上的 Safari 中加载