我有一个项目,其中我尝试使用.setImage调用的任何图像都显示蓝色方块而不是图像。
sender.setImage(UIImage(named: "o.png"), for: [])
print(sender.tag)
非常感谢任何帮助
编辑:我忘了提到这是为IBAction内的按钮设置图像
答案 0 :(得分:2)
一些事情。我从未见过setImage
与空数组一起使用。即使文档说"如果未指定状态,也会使用Normal",请尝试明确说明要应用图像的状态:
尝试这样做:
// let's make sure sender is really a button
if let aButton = sender as? UIButton
{
if let nonBlueImage = UIImage(named: "o.png")
{
aButton.setImage(nonBlueImage, for: [.normal, .selected, .highlighted])
} else {
print("couldn't find o.png")
}
} else {
print("suprise, sender wasn't really a button")
}
答案 1 :(得分:1)
基本: .gallery-cell {
position: relative;
}
a#thumb2 {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
无法像UIButton
那样直接设置。您必须定义UIImageView
设置图像的状态。即使您想为UIButton
设置标题,也必须定义按钮状态,如下所示
UIButton
所以用下面的行替换你的代码并尝试
sender.setImage(<your_image>, for: .normal)
希望它有所帮助。
答案 2 :(得分:0)
当您尝试访问的图像不是.png
格式时,会发生这种情况。
否则图像根本不存在。
答案 3 :(得分:0)
使用setBackgroundImage
属性而不是setImage
属性。它会起作用:
sender.setBackgroundImage(UIImage(named: "o.png"), for: .normal)
答案 4 :(得分:0)
点击发件人状态后更改为已选中。
请清楚明白发件人的色彩
,否则
sender.setImage(UIImage(named: "o.png"), for: .normal)
答案 5 :(得分:0)
您应该设置UIControlState而不是[]。
因此,例如,如果要将图像更改为UIButton的正常状态,
然后应该使用.normal而不是[]。
ex:sender.setImage(UIImage(名称:&#34; o.png&#34;),用于:.normal)
你可以使用.selected,.highlighted,类似的东西。
请参考此网址。 https://developer.apple.com/reference/uikit/uicontrolstate
答案 6 :(得分:0)
尝试使用此代码
let image = UIImage(named:"o")?.withRenderingMode(.alwaysOriginal)
sender.setImage(UIImage(named: image), for: .normal)
答案 7 :(得分:0)
不是直接回答此问题,但在UIImageView
和UIButton
扩展名中设置图像时,我也得到了一个蓝色圆圈。
对我来说,使用alwaysOriginal
渲染图像可以达到目的。
let image = UIImage(named:"placeholder")?.withRenderingMode(.alwaysOriginal)
button.setImage(image, for: .normal)