如果更改了UIButton图像,则缩放图像将返回1:1

时间:2016-11-10 20:12:54

标签: ios swift uibutton

我有一个UIButton用于画笔,另一个用于缩放。

如果我保持图像相同,两者都能正常工作。 图像附加到Interface Builder中的按钮:

enter image description here

如果我更改“绘图”的按钮图像,则在缩放操作后,图像将返回无缩放。

drawButton.setImage(UIImage.init(named: "Brush.png"), for: UIControlState.normal)

如何在不影响缩放的情况下更改图像 - 我希望能够以缩放模式进行绘制。

我尝试过这样的事情:

drawButton.imageView?.image = UIImage.init(named: "BrushYellow.png")

这不会影响缩放,但不会更改图像。欢迎您的想法。

1 个答案:

答案 0 :(得分:1)

我倾向于使用背景图像并强制纵横比等于我按钮上图像的宽高比。它可以防止你提到的所有棘手的问题。

查看照片的实际方面,并使用图像尺寸的纵横比在故事板上设置约束。如果以编程方式创建它,则使用比率设置框架也应该有效。确保您使用

UIButton().setBackgroundImage(image: UIImage?, for: UIControlState) 

更改图像或者图像重叠。如果你需要将它设置为多个控制状态,那么这样做,但我很少发现除了.Normal之外的其他任何东西

如果您需要更改约束,那么您可以为它创建一个插座,并将其乘数从1:1更改为它应该返回的任何值。如果用户界面未自行更新,您可能需要致电self.view.layoutIfNeeded()