我想为不同的状态更改UIButton的图像。为此,我使用:
btn.setImage(UIImage(named: "blabla"), for .normal)
和
btn.setImage(UIImage(named: blabla2), for .disabled)
这只会使一些看起来变暗。
我做错了什么?我只是想让我的按钮外观在不同状态下相同,怎么样?
(我的按钮类型 - .system)。
答案 0 :(得分:0)
你只需要为州设置一个。如果你没有为不同的状态设置另一个图像。在所有州看起来都一样。
button.setImage(image, forState: .Normal)
答案 1 :(得分:0)
用于禁用显示按钮设置图像
let btn = UIButton(type: .Custom)
btn.setImage(UIImage(named: blabla2), for .disabled)
然后
btn.enabled = false // to display Disable image
btn.enabled = true // to display Normal image
答案 2 :(得分:0)
这对我有帮助(swift 3.0)
btn.setImage(UIImage(named:"yourFriend")?.withRenderingMode(.alwaysOriginal), for: .normal)
btn.setImage(UIImage(named:"yourFriend")?.withRenderingMode(.alwaysOriginal), for: .disabled)
答案 3 :(得分:0)
您也可以通过StoryBoard完成此操作。 选择按钮,获取身份检查员并执行以下操作: - 首先将buttonType设置为自定义,而不是系统。 其次选择状态Config让我们说默认值并在" image"中给出 imageName。属性,同样选择其他状态配置(突出显示,禁用,选择等)并根据您的需要设置图像。 然后在代码中,您只需要控制并设置按钮的状态,并向您显示相应的图像。
答案 4 :(得分:0)
<iframe src="http://localhost:8080?queryParameter=1&queryParameter=2&queryParameter3" />
//触发操作
private let button1: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named:"firstButtonNormalStateImage"), for: .normal)
button.setImagesetImage(UIImage(named:"firstButtonSelectedStateImage"), for: .selected)
return button
}()
private let button2: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named:"secondButtonNormalStateImage"), for: .normal)
button.setImage(UIImage(named:"secondButtonSelectedStateImage"), for: .selected)
return button
}()
// implement for example in viewDidLoad()
button1.addTarget(self, action: #selector(firstButtonDidTap), for: .touchUpInside)
button2.addTarget(self, action: #selector(secondButtonDidTap), for: .touchUpInside)
答案 5 :(得分:0)
对于仍然使用自定义按钮仍存在此问题(当前为Xcode 10.0)的用户,我发现我可以更改文本和/或图像,而不是:
myButton.setTitle("Hi", for: [.normal])
我用了这个:
myButton.setTitle("Hi", for: []) //remove specific states
我不知道为什么.normal
对我不起作用,即使该按钮确实已启用。但这也许会让别人头疼!