我是编码开发的新手,所以这应该是一个非常棒的问题.但是我试图将我的UIButton的图像更改为存储在image.casset“duellogo”中的图像,如果我的if语句执行的话.但我不确定如何更改UIButton图像;我只知道如何更改UI
ImageView
Image.
import UIKit
class ViewController: UIViewController
{
@IBOutlet weak var firstCardImageView: UIImageView!
@IBOutlet weak var secondCardImageView: UIImageView!
@IBOutlet weak var playRoundButton: UIButton!
@IBOutlet weak var backgroundImageView: UIImageView!
@IBOutlet weak var Player1Score: UILabel!
@IBOutlet weak var Player2Score: UILabel!
//declaring index score, 0, to player 1 and player 2
var player1Total=0
var player2Total=0
var cardNamesArray:[String] = ["ace", "card2", "card3", "card4", "card5", "card6", "card7", "card8", "card9", "card10", "jack", "queen", "king"]
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func playRoundTapped(sender: UIButton)
{
// create variable to make a random number from 1-13
var firstRandomNumber:Int = Int(arc4random_uniform(13))
var firstCardString:String = self.cardNamesArray[firstRandomNumber]
self.firstCardImageView.image = UIImage(named: firstCardString)
// create variable to make a random number from 1-13 for second card
var secondRandomNumber = Int(arc4random_uniform(13))
var secondCardString:String = self.cardNamesArray[secondRandomNumber]
self.secondCardImageView.image = UIImage(named: secondCardString)
// Determine the higher card
if firstRandomNumber > secondRandomNumber{
//TODO: first card is lager
player1Total+=1
self.Player1Score.text = String(player1Total)
}else if(firstRandomNumber == secondRandomNumber){
// ERROR: TRYING TO CHANGE BUTTON IMAGE
self.playRoundButton.setImage("duellogo", forState: UIControlState.Normal)
// ^^ ERROR
}else{
//TODO: second card is larger
player2Total+=1
self.Player2Score.text = String(player2Total)
}
}
}
最佳答案 试试这个代码
let image = UIImage(named: "duellogo.png") as UIImage!
self.playRoundButton.setImage(image, forState: .Normal)