2016-09-22 80 views
0

我有一些非常简单的代码,只是编程设置一个按钮的背景图像的东西,但是当模拟器运行它什么也没有显示。在故事板上,它显示图像存在,然而没有任何显示。Swift Button背景图片没有出现?

class ViewController: UIViewController { 

@IBOutlet weak var LetUsOutlet: UIButton! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    let backgroundColor = UIColor(red: 0, green: 255, blue: 247, alpha: 1) 
    self.view.backgroundColor = backgroundColor 
    let backgroundButtonImage = UIImage(named: "round rectangle button.png") as UIImage? 
    self.LetUsOutlet.setImage(backgroundButtonImage, for: .normal) 
} 

@IBAction func LetUsCreateMeal(_ sender: UIButton) { 
} 
@IBAction func CreateYourOwn(_ sender: UIButton) { 
} 
@IBAction func BrowseItems(_ sender: UIButton) { 
} 
@IBAction func ViewYourMeals(_ sender: UIButton) { 
} 

} 

这是我有的简单代码,所以我不确定它为什么不能正常工作。以下是我的故事板。

http://imgur.com/gallery/c5EWW

第一个按钮是我尝试以编程方式设置背景,和其他3是当我刚刚设置的故事板中的背景图片属性。

这是运行时发生的情况,显示所有背景图像都是空的。

http://imgur.com/gallery/urM25

任何帮助表示赞赏。

编辑:我似乎有图像存储在错误的地方,我把它放在一个单独的文件夹,而不是在xassets文件夹。

+0

你可以分享示例项目? –

+0

Side comment - LetUsOutlet看起来像是那个按钮的一个很不好的名字,并且打破了典型的命名约定。当我读'self.LetUsOutlet'时,我不知道我在看什么,并且必须阅读该声明才能理解。如果它是用小写的第一个字母代替'createMealButton',那么它会遵循典型的命名约定,并且在引用它的任何地方都更清晰。变量和函数名称应以小写字母开头。 – Mike

回答

0

我嘲笑了一个例子 - 似乎对我来说还好。我建议你检查你的按钮的约束IB

Mock up

+0

你能详细谈谈这个吗?我将按钮限制在视图的边和顶部,但仍然没有输出图像。 –

+0

我只是做了4个约束(顶部,底部,左侧和右侧) - 听起来像你会和你一样好。检查你的图像文件名称(我也有宠物讨厌图像名称与空格),并确保你已经将它添加到Assets.xcassets文件夹? –

0

改变这一行

let backgroundButtonImage = UIImage(named: "round rectangle button.png") as UIImage? 

这一行

let backgroundButtonImage = UIImage(named: "round rectangle button") 

这行

self.LetUsOutlet.setImage(backgroundButtonImage, for: .normal) 

这个

self.LetUsOutlet.setBackgroundImage(backgroundButtonImage, for: .normal) 
+0

这对我没有用,还有其他建议吗? –

+0

坚持,我会写一些建议 –

+0

1-确保图像名称是正确的,区分大小写,也从代码中删除扩展名,2-确保插座正确链接到它的IBOutlet VAR在你的视图控制器(要做到这一点,当在故事板中选择按钮时,转到连接检查器,并确保按钮名称仅连接到您的视图控制器下的引用插座),告诉我如果您仍然难以实现此目的 –

1

要更改按钮的背景图片,你应该使用

LetUsOutlet.setBackgroundImage(UIImage(named:"round rectangle button.png"), forState: UIControlState.Normal)