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

时间:2018-06-21 10:36:40

标签: ios uinavigationbar ios11 uibarbuttonitem uinavigationitem

在我们的应用中,我们在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

iOS11.4

enter image description here

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

1 个答案:

答案 0 :(得分:1)

好的。我的同事在这里找到了我要记录的解决方案。

结果表明,在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 item