【发布时间】:2015-08-20 02:14:43
【问题描述】:
我正在尝试将 UIButton 的 backgroundImage 设置为可以是任意大小的图像。我想要显示高图像的方式是让图像扩展以水平填充按钮,并且只显示图像的顶部。因此,对于尺寸为 100x200 且图像为 80x400 的按钮,我想将图像缩放为 100x500,并且只显示该缩放图像的前 200 个像素。
我想知道是否有某种方法可以改变背景图像填充 uibutton 的方式(现在它不会保留图像的纵横比)。我尝试将按钮的contentMode 和按钮的imageView(注意我将按钮设置为Custom 类型,而不是System)设置为.ScaleAspectFill,但这并没有做任何事情。
我最接近的方法是完全放弃背景图像并改用setImage。此代码能够水平填充按钮,但它显示图像的中间,而不是顶部。它还具有奇怪的功能,如果缩放的图像与按钮的高度相同,则它不会显示完整的图像(从底部和顶部切割了大约 5 px)。这是代码:
imagesButton.imageView?.contentMode = .ScaleAspectFill
imagesButton.contentHorizontalAlignment = .Fill
imagesButton.setImage(image, forState: .Normal)
我查看了大约 5 篇关于 UIButtons 中图像大小调整的堆栈溢出帖子,但我找不到满足我特定需求的正确设置。
【问题讨论】:
标签: ios swift uibutton uiimage