[英]How to set image of UIButton in Swift 3?
最初,我的代碼正在運行。
IBAction func clickedon(_ sender: UIButton) {
if(gamestate[sender.tag] == 0 && gameisactive == true){
gamestate[sender.tag] = activeplayer
if (activeplayer == 1){
print("working")
sender.setImage(UIImage(named:"Cross.png"), for: UIControlState()) <-----------
activeplayer = 2
}
else {
print("working2")
sender.setImage(UIImage(named:"Nought.png"), for: UIControlState()) <-----------
activeplayer = 1
}
}
設置圖像的這兩段代碼正在運行。 這些按鈕沒有設置任何圖像。 單擊它們時,我希望它們切換到這些圖像。 這些圖像位於帶有視圖控制器的文件夾中。 我不確定他們為什么停止工作。 我評論了所有其他代碼,看它是否可能是一個問題,但它似乎不是。 在兩種情況下都會打印出打印報表。 它只是設置的圖像似乎沒有做任何事情。 沒有錯誤,它什么都不做。
我真的不了解UIControlState()代碼。 我正在模仿一個具有相同代碼的在線項目。 真的很奇怪。 如果您有任何建議,請告訴我!
IBAction func clickedon(_ sender:UIButton){
if(gamestate[sender.tag] == 0 && gameisactive == true){
gamestate[sender.tag] = activeplayer
if (activeplayer == 1){
print("working")
sender.setImage(UIImage(named: "Cross.png")!, forState: UIControlState.Normal)
sender.setImage(UIImage(named:"CrossSelected.png")!, forState: UIControlState.Selected)
activeplayer = 2
}
else {
print("working2")
sender.setImage(UIImage(named: "Nought.png")!, forState: UIControlState.Normal)
sender.setImage(UIImage(named:"NoughtSelected.png")!, forState: UIControlState.Selected)
activeplayer = 1
}
}
你可以試試這個:
let image = UIImage(named: "imagename.png")
yourButton.setBackgroundImage(image, for: .normal)
我嘗試使用其他setImage調用但不工作。 我發現這個setBackgroundImage讓圖像出現。 希望它能幫到你。
在您的代碼中,UIControlState()可以替換為UIControlState.normal
或UIControlState.highlighted
。
https://developer.apple.com/reference/uikit/uicontrolstate
IBAction func clickedon(_ sender: UIButton) {
if(gamestate[sender.tag] == 0 && gameisactive == true){
gamestate[sender.tag] = activeplayer
if (activeplayer == 1){
print("working")
sender.setImage(UIImage(named:"Cross.png"), for: UIControlState.normal)
sender.setImage(UIImage(named:"Cross_highlighted.png"), for: UIControlState.highlighted)
activeplayer = 2
}
else {
print("working2")
sender.setImage(UIImage(named:"Nought.png"), for: UIControlState.normal)
sender.setImage(UIImage(named:"Nought_highlighted.png"), for: UIControlState.highlighted)
activeplayer = 1
}
}
你強迫寬度和高度約束? 如果不是,您的按鈕可能會退化,因為它們內部沒有圖像。 您也可以在設置圖像時設置框架; 我更喜歡自動布局。
UIImage(named:"Cross.png")!
sender.setImage(image, for: .normal)
sender.frame.size = image.size
我想出了答案。 UIControlState.normal工作,問題是按鈕實際上放在我的板下面。 這意味着我可以點擊它們但它們不會出現。
它解釋了為什么打印語句和所有內容都能正常運行。 謝謝!
self.button.setImage(UIImage(named: "namebutton"), for: .normal)
當你想改變swift 3上按鈕的圖像時,你可以嘗試我的解決方案,相信我,因為我嘗試了它並取得了成功。 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.