设备上的导航 UIBarButtonItem 外观不同

Posted

技术标签:

【中文标题】设备上的导航 UIBarButtonItem 外观不同【英文标题】:Navigation UIBarButtonItem Appearance On Device Is Different 【发布时间】:2015-10-10 20:51:54 【问题描述】:

我有一个用于导航控制器的自定义栏后退按钮图标。我在视图控制器中使用以下代码。

var myImage = UIImage(named: "previous");
UIBarButtonItem.appearance().setBackButtonBackgroundImage(myImage, forState: .Normal, barMetrics: .Default);
let backItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)
navigationItem.backBarButtonItem = backItem

测试时的结果是这样的:

但是当我的应用进入应用商店时,结果是这样的:

有谁知道为什么结果不同,我该如何修复外观?或者,如果不是,我还能如何更改后退按钮项。这真的很烦人,因为我的应用程序有一个我不知道的错误,当我找到修复程序时需要 10 天才能更新。

更新 如果左边的项目有文本,图像会环绕文本。但是我使用了一个空字符串,因为我不能使用 nil,因为它使用导航控制器提供的默认文本。所以结果是图像的一些轻微包装。

【问题讨论】:

【参考方案1】:

试试这个代码:

let backImage = UIImage(named: "BackButton")?.resizableImageWithCapInsets(UIEdgeInsetsMake(0, 25, 0, 0))
UIBarButtonItem.appearance().setBackButtonBackgroundImage(backImage, forState: .Normal, barMetrics: .Default)
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(-1000, -1000), forBarMetrics: .Default)

【讨论】:

以上是关于设备上的导航 UIBarButtonItem 外观不同的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 UIBarButtonItem 按钮在某些设备上获得背景颜色?

没有工具栏或导航栏的 UiBarButtonItem

如何在导航栏上的 UIBarButtonItem 内偏移 UIButton 图像?

为啥 Android Studio 预览版中的 Activity 外观与设备上的不同?

UIBarButtonItem 外观我需要一个例外

自定义 sg 控件和栏上的 UIButton 或 UIBarButtonItem 的背景