设备上的导航 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 内偏移 UIButton 图像?