为什么我的leftBarButtonItem在iOS 11.4上变小了

为什么我的leftBarButtonItem在iOS 11.4上变小了,ios,uinavigationbar,ios11,uibarbuttonitem,uinavigationitem,Ios,Uinavigationbar,Ios11,Uibarbuttonitem,Uinavigationitem,在我们的应用程序中,我们正在UINavigationBar中显示一个汉堡项目。 我们使用LeftBarbuttonite作为展示它的地方 下面是创建burger按钮的代码 let barItem = UIBarButtonItem(image: UIImage(named: "IconBurger"), style: .plain, target: target, action: selector) barItem.tintColor = .tintColor barIt

在我们的应用程序中,我们正在UINavigationBar中显示一个汉堡项目。 我们使用LeftBarbuttonite作为展示它的地方

下面是创建burger按钮的代码

    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上出现以下结果

第11.4条

第10.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上的burger按钮看起来又不错了。 但现在回到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