在我们的应用中,我们在 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 上以某种方式缩小了
我通过创建如下所示的自定义按钮 View 解决了这个问题:
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
。
最佳答案
好的。我的同事找到了我想在这里记录的解决方案。
事实证明
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 item
关于ios - 为什么我的 leftBarButtonItem 在 iOS 11.4 上呈现得更小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50966415/