ios - 如何防止按钮的背景图像拉伸(stretch)?

标签 ios cocoa-touch uiimageview uibutton uikit

我将 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/

相关文章:

ios - Swift,应用程序在模拟器的后台运行,但不在设备上运行

ios - SetValue 未按预期运行

iphone - 在哪里可以找到有关私有(private) iPhone API 的信息?

iphone - 如何以编程方式创建翻页效果?

ios - 如何让scrollView滚动ImageView直到中心?

iphone - UIImageView 在 UIScrollView 中捏缩放

ios - 向 UIAlertView 添加声音的正确方法

ios - 向 Storyboard中的部分文本 UILabel 添加下划线属性

iphone - 获取 iPhone 文档目录。 NSSearchPathForDirectoriesInDomains 仍然是唯一的方法吗?

ios - 如何设置 UIImageView 的大小等于 UIImage 的大小?