我使用以下代码以编程方式更改uibutton的背景:
firstButton.setImage(UIImage(named: "drinks-sub-first"), forState: UIControlState.Normal)
麻烦是按钮不再受我在.xib文件中设置的约束的限制,现在占用整个屏幕。我究竟做错了什么?如何使按钮保持与更改背景图像之前相同的尺寸?
我也尝试过这种方法
var frame = firstButton.frame
firstButton.setImage(UIImage(named: "drinks-sub-first"), forState: UIControlState.Normal) //tried setBackgroundImage function as well
firstButton.frame = frame
答案 0 :(得分:1)
您没有使用方法setImage()
设置背景图像。该方法在UIButton上设置附件图像。
要设置按钮的背景图像,请使用以下方法:
setBackgroundImage(image: UIImage?, forState state: UIControlState)
答案 1 :(得分:1)
检查您为按钮设置的约束。您应该将宽度和高度设置为“小于或等于”您想要的任何值;你可能将它们设置为“大于或等于”。或者,如果您希望它们具有相同的宽度和高度,则将约束设置为“等于”该值。
答案 2 :(得分:0)
我是一个新手,但我在这里得到了很多帮助,我觉得有必要随时帮助我。查看有关使用按钮背景图像的快速教程:http://www.raywenderlich.com/78264/learn-to-code-ios-apps-with-swift-tutorial-5
从教程:
您可能会注意到此时按钮看起来有点挤压。这是因为您的硬编码宽度和高度约束小于图像本身。 (在你的情况下,我猜对了,但仍然......)
幸运的是,有一种简单的方法可以解决这个问题。所有视图都具有称为内在内容大小的内容,您可以将其视为自动约束,将其设置为所呈现元素的大小。对于图像,它将是图像本身的大小。
因此,您可以依靠图像的内在内容大小来适当调整图像视图的大小,而不是使用硬编码的宽度和高度约束。