图像在运行时自动调整大小但不在Interface Builder上调整大小

时间:2014-11-14 20:58:36

标签: ios uibutton uiimage rendering

好吧,现在这让我很挣扎。我有一个PNG图像,大小为10x36px。 当我尝试在我的任何视图中使用它时,它会被调整大小。不是框架属性,这个属性保持不变。但在视觉上,图像并不相同。

真实图像就像这个this。 (对不起,如果你几乎看不到它。那是因为它在白色前景上有白色背景)。

但是当我在模拟器中时(它也发生在设备上)它看起来像这样。

this

我没有使用约束(我关闭了AutoLayout以找到错误)。

我打印了该按钮的框架,它的宽度,高度,x和y值与界面构建器中的值一样。我把它们印在各处,也是为了回应不同的事件(我知道,这不是原因。我只是绝望了。)

这种情况只发生在这个PNG上,特别是因为我在同一个视图中有其他UIButton,但是有不同的图像,工作得很好。

导致此错误的原因是什么?

编辑:

尝试作为背景图片,它变得更好。但仍然不完美。

this

3 个答案:

答案 0 :(得分:3)

将png图像放在Photoshop / Pixelmator中的空白36x36 png图像内,以停止调整大小并保留原始比例。

或尝试在Interface Builder中或以编程方式将视图内容模式设置为“纵横比适合”:

yourImageView.contentMode = UIViewContentModeScaleAspectFit;

原因可能是UIBarButtons以不同于UIButton的方式处理图像。 UIBarButtons通常用于UINavigationBars或UIToolbars,而UIButtons通常用于View中。

答案 1 :(得分:1)

确保使用的是按钮背景图像,而不是按钮图像。

按钮背景图片覆盖整个按钮背景。

按钮图像将图像放置在背景的一部分上。

另外,使用xcassets。它附带项目模板。如果您没有(删除它),请添加一个新图像并创建图像集。完成后,添加图像。确保为图像集中的每个图像选择“渲染为原始图像”。

答案 2 :(得分:1)

您链接的PNG图像不是10x36像素,而是10x30。糟糕?