首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的leftBarButtonItem在iOS 11.4上变小了

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

Stack Overflow用户
提问于 2018-06-21 18:36:40
回答 1查看 101关注 0票数 0

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

下面是创建汉堡按钮的代码。

代码语言:javascript
复制
    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上,汉堡按钮不知何故缩小了

我通过创建一个自定义按钮视图修复了这个问题:

代码语言:javascript
复制
   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版本时,我很震惊,因为汉堡按钮根本不再渲染了。

(想象一下这里的全黑图像)

我最后写了一些难看的东西,比如

代码语言:javascript
复制
if #available(iOS 11.4, *) {
   // show new version
} else {
   // show old version
}

但我希望不会是这样!有没有人有类似的经历或能给出建议?

附加信息:我们使用pdf资源在我们的项目中创建UIImage

EN

回答 1

Stack Overflow用户

发布于 2018-06-22 15:29:06

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

原来在< iOS11上缺少调用sizeToFit()

代码语言:javascript
复制
    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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50966415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档