UIBarButton按钮图像拉伸宽度

时间:2017-10-09 04:48:54

标签: uibarbuttonitem xcode9 swift4

问题

升级到XCode 9并将我的代码迁移到Swift 4之后,我遇到了一些我并不期待的问题。其中一个是我的应用程序中的导航栏在左上方栏按钮项目插槽中包含一个带图像的按钮,现在图像(和按钮)在所有视图控制器的屏幕中间拉伸(一些具有自动布局和一些别' T)。在XCode 9之前,它工作得非常好,这个问题只在我更新XCode后才会弹出。

我尝试了什么

来自this old SO post有人发布了最近的回答,似乎表明我的问题源于Assets.xcassets中图片的不同大小,但我不明白为什么会出现问题。我尝试复制按钮的图像并用#34; @ 2x"重命名它。最后(不确定是什么区别......)并将其拖入Assets.xcassets中的2x插槽,并以某种方式使按钮略微拉伸(大约三分之一的屏幕而不是大约一半)。总的来说,我只是对为什么遇到这个问题感到困惑,并希望找到一个可以解决我的问题的解决方案解释为什么它之前有效,但现在还没有。

提前致谢。

2 个答案:

答案 0 :(得分:2)

你必须像这样设置条形按钮的图像视图:

imageView是您的栏按钮ImageView

let widthConstraint = imageView.widthAnchor.constraint(equalToConstant: 32)
let heightConstraint = imageView.heightAnchor.constraint(equalToConstant: 32)
heightConstraint.isActive = true
widthConstraint.isActive = true

答案 1 :(得分:1)

嗨RPatel99,

我遇到了同样的问题。但我找到了一个解决方案,将按钮的图像设置为以下尺寸:
- image @ 1x:22x22px
- image @ 2x:44x44px
- image @ 3x:66x66px

不幸的是,由于我的声誉,我无法发布照片。

注意:我尝试了许多不同的方法,例如更改按钮图像的框架,但它不起作用。如果有人有其他解决方案,请告诉我,我很感兴趣。