我正在开发一款带按钮的应用。该按钮没有文字,图像或背景。
所以我想做的是在viewDidLoad函数中给它一个图像。
这就是我所拥有的:
@IBOutlet var tapButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
tapButton.setImage("redTap.png", forState: UIControlState.Normal)
}
但我有一个错误,说我无法将字符串转换为UIIMage。
我如何让它发挥作用?
我试过了:
let image = UIImage(named: "redTap.png")
tapButton.setImage(image, forState: UIControlState.Normal)
我已经开始工作,但现在我遇到了问题。
图像被认为是红色文本但显示为蓝色。
我能够使用以下方式正确显示图像:
let image = UIImage(named: imageColor[randNum])?.imageWithRenderingMode(.AlwaysOriginal)
tapButton.setImage(image, forState: UIControlState.Normal)
我现在想要的是按下按钮时没有突出显示按钮。我有一些其他按钮,它们在xcode中分配了图像,而不是通过代码。按下时它们不会突出显示。
那么当按下按钮时如何摆脱突出显示?
答案 0 :(得分:10)
你不需要" .png"。
如果" .imageWithRenderingMode(。AlwaysOriginal)"适合您:要将相同的图像保持在不同的状态,您必须为不同的状态设置相同的图像/属性。
@IBOutlet var tapButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
tapButton.setImage(UIImage(named: "redTap")?.imageWithRenderingMode(.AlwaysOriginal), forState: .Normal)
tapButton.setImage(UIImage(named: "redTap")?.imageWithRenderingMode(.AlwaysOriginal), forState: .Highlighted)
}
答案 1 :(得分:8)
Swift 3
yourBtn.setImage( UIImage.init(named: "imagename"), for: .normal)
答案 2 :(得分:2)
现在(swift 3版):
@IBOutlet var tapButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
tapButton.setImage(UIImage(named: "redTap")?.withRenderingMode(.alwaysOriginal), for: .normal)
tapButton.setImage(UIImage(named: "redTap")?.withRenderingMode(.alwaysOriginal), for: .normal)
}
答案 3 :(得分:0)
让image = UIImage(名称:“redTap.png”) tapButton.setImage(image,.Normal)
答案 4 :(得分:0)
首先,我会将您想要的图像放在Assets.xcassets文件夹中。只需将其拖入即可。然后双击它即可随意调用它。让我们说它被称为“redTap”。
对于您要放置的代码:
@IBOutlet var tapButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let redTapImage = UIImage(named: "redTap")
tapButton.setImage(redTapImage, forState: UIControlState.Normal)
}
答案 5 :(得分:0)
let button = UIButton(type: .Custom)
let image = UIImage(named:"redTap")?.imageWithRenderingMode(.AlwaysTemplate)
button.setImage(image, forState: .Normal)
button.tintColor = UIColor.redColor()
答案 6 :(得分:0)
有一个简单的解决方案:
@IBOutlet var tapButton: UIButton!{
didSet{
let image = UIImage(named: imageColor[randNum])
tapButton.setImage(image, forState: UIControlState.Normal)
}
除此之外,在属性检查器中,将按钮类型设置为'自定义'
答案 7 :(得分:0)
首先在界面构建器中将按钮类型设置为Custom
,然后将按钮的图像设置为正常状态。
将IBOutlet用于类文件中的按钮连接为
@IBOutlet weak var btnCheckbox: UIButton!
在viewDidLoad
的班级文件中,将所选状态的图片设置为
btnCheckbox.setImage(UIImage.init(named: "name_of_image"), for: .selected)
为班级文件创建@IBAction
,
@IBAction func onTapCheckBox(_ sender: UIButton) {
sender.isSelected = !sender.isSelected
}
然后将@IBAction
从界面构建器连接到按钮的Touch up Inside
事件