迅捷的UIImage蓝色方块

时间:2017-03-30 13:05:43

标签: ios swift uiimageview uiimage

我有一个项目,其中我尝试使用.setImage调用的任何图像都显示蓝色方块而不是图像。

sender.setImage(UIImage(named: "o.png"), for: [])
print(sender.tag)

非常感谢任何帮助

编辑:我忘了提到这是为IBAction内的按钮设置图像

8 个答案:

答案 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)

不是直接回答此问题,但在UIImageViewUIButton扩展名中设置图像时,我也得到了一个蓝色圆圈。 对我来说,使用alwaysOriginal渲染图像可以达到目的。

let image = UIImage(named:"placeholder")?.withRenderingMode(.alwaysOriginal)
button.setImage(image, for: .normal)