我将 UIButtonTypeCustom 分配给背景图像小于按钮框架的 UIView。
图像变小的原因是因为我试图为 UIButton 添加更多的“目标区域”。
但是,图像被缩放到框架的完整大小,而不是只是图像的大小。
我已经尝试将 UIButton 和 UIButton 的 imageView 的 contentMode
属性设置为 UIViewContentModeScaleAspectFit
,但没有成功,图像仍然被拉伸(stretch)。
有没有办法以编程方式完成我想做的事情?
提前致谢!
最佳答案
很多人在按钮图像方面犯了与您相同的错误,然后跳过箍试图使按钮按照他们的预期运行。让我们一劳永逸地解决这个问题:
UIButton
可以显示两种类型的图像——前景图像和背景图像。按钮的背景图像应该替换按钮的背景纹理。因此,它拉伸(stretch)以填充整个背景是有道理的。但是,按钮的前景图像应该是一个图标,可能会或可能不会与文本一起显示;它不会拉伸(stretch)。如果框架小于图像,它可能会收缩,但不会拉伸(stretch)。您甚至可以使用 Interface Builder 中的控件对齐属性来设置前景图像的对齐方式。
一个按钮的前景和背景图像可以用这样的代码来设置:
// stretchy
[self setBackgroundImage:backgroundImage forState:UIControlStateNormal];
// not stretchy
[self setImage:forgroundImage forState:UIControlStateNormal];
关于ios - 如何防止按钮的背景图像拉伸(stretch)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675590/