在我们的应用程序中,我们在UINavigationBar中显示了一个汉堡项目。我们使用leftBarButtonItem作为展示它的地方。
下面是创建汉堡按钮的代码。
let barItem = UIBarButtonItem(image: UIImage(named: "IconBurger"), style: .plain, target: target, action: selector)
barItem.tintColor = .tintColor
barItem.adjustAccessibility()这导致在iOS 11.4和iOS 11.3.1上出现以下结果

iOS11.4

iOS10.3.1
如您所见,在iOS11.4上,汉堡按钮不知何故缩小了
我通过创建一个自定义按钮视图修复了这个问题:
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "IconBurger"), for: .normal)
button.addTarget(target, action: selector, for: .touchUpInside)
let barItem = UIBarButtonItem(customView: button)
barItem.tintColor = .tintColor
barItem.adjustAccessibility()使用这个版本,汉堡按钮在iOS 11.4上看起来又不错了。但现在,当我回到10.3.1版本时,我很震惊,因为汉堡按钮根本不再渲染了。
(想象一下这里的全黑图像)
我最后写了一些难看的东西,比如
if #available(iOS 11.4, *) {
// show new version
} else {
// show old version
}但我希望不会是这样!有没有人有类似的经历或能给出建议?
附加信息:我们使用pdf资源在我们的项目中创建UIImage。
发布于 2018-06-22 15:29:06
好的。我的一位同事找到了我想在这里记录的解决方案。
原来在< iOS11上缺少调用sizeToFit()
let button = UIButton(type: .custom)
let image = UIImage(named: "IconBurger")
button.setImage(image, for: .normal)
button.addTarget(target, action: selector, for: .touchUpInside)
button.sizeToFit()
let item = UIBarButtonItem(customView: button)
item.adjustAccessibility()
return itemhttps://stackoverflow.com/questions/50966415
复制相似问题