设置新图像后调整 UIButton 的大小

Posted

技术标签:

【中文标题】设置新图像后调整 UIButton 的大小【英文标题】:Resizing a UIButton after setting a new image 【发布时间】:2015-08-27 17:41:22 【问题描述】:

我有一个UIButton 子类,只要用户按下它,我就会对其进行动画处理。当它没有被按下时,UIButton 使用“未选择”图像并且看起来很棒,但是当用户按下它时,我设置了一个新的“选择”图像。

这很好用,除了选定的图像比未选定的图像大,所以当按钮设置选定的图像时,它不会调整大小以适应新的图像。

按钮太小,图像被夹住,看起来变形了。

我尝试在设置新图像后调用setNeedsLayoutsetNeedsDisplay 之类的方法(分开,不一起),但按钮保持相同大小。

如何在按钮上设置新图像时调整其大小?

【问题讨论】:

您是否将图像的内容模式设置为宽高比?这可能是默认设置,但我想不起来了。 调整按钮大小与 contentMode 属性无关。 “按钮太小,图像被捏住,看起来失真”通常与内容模式有关。此外,您应该让内在内容大小在很大程度上驱动按钮的大小。无论如何,按钮只是在一天结束时从 UIView 继承,这意味着您可以只操作框架 【参考方案1】:

您可以将button.frame设置为图片的大小。

【讨论】:

以上是关于设置新图像后调整 UIButton 的大小的主要内容,如果未能解决你的问题,请参考以下文章

为啥在启动图像中选择“iOS 8.0 及更高版本”并为此新图像后,iOS 应用程序的屏幕尺寸会发生变化?

设置 UIButton 的 backgroundImage 时不调整大小,但定位

如何调整自定义 UIButton 的图像大小?

调整UIbutton Image大小 及title和位置

如何调整 UIButton 的大小以适应文本而不使其比屏幕更宽?

调整字体大小以适合多个 UIButton,使它们都具有相同的字体大小