如果我点击Swift中的button,如何更改图像?

我是新来的迅速。 我有一个button和3个图像保存在数组中。 我想要的是通过点击button来改变图像。

let circleArray = ["circle-gray-big","circle-green-big","circle-red-big"] @IBAction func carbsButton(_ sender: Any) { } 

Swift 3.0

全球的class级宣言,

 let circleArray = ["circle-gray-big","circle-green-big","circle-red-big"] var index = 0 

UIImageView

 @IBOutlet var imageView: UIImageView! //Global @IBAction func carbsButton(_ sender: Any) { self.index = (self.index >= self.circleArray.count-1) ? 0 : self.index+1 self.imageView.image = UIImage(named:circleArray[index]) } 

UIButton

carbsButton(_ sender: Any)中的carbsButton(_ sender: Any)更改为carbsButton(_ sender: UIButton) 。 做了如下代码之后,

 @IBAction func carbsButton(_ sender: UIButton) { self.index = (self.index >= self.circleArray.count-1) ? 0 : self.index+1 sender.setImage(UIImage(named:circleArray[index]), for: .normal)//Button } 

UIImageView and UIButton

 let circleArray = ["circle-gray-big","circle-green-big","circle-red-big"] var index = 0 @IBOutlet var imageView: UIImageView! @IBAction func carbsButton(_ sender: UIButton) { self.index = (self.index >= self.circleArray.count-1) ? 0 : self.index+1 self.imageView.image = UIImage(named:circleArray[index]) //imageView sender.setImage(UIImage(named:circleArray[index]), for: .normal)//Button } 

示例输出:

 sender.setBackgroundImage(UIImage(named:circleArray[index]), for: .normal) 

在这里输入图像说明

 let image = UIImage(named: circleArray[0]) // circleArray[1], circleArray[2] 

在你的动作function设置button图像

 button.setImage(image, for: .normal) 
 button.setImage(UIImage(named: circleArray[0]),forState:Normal) 

您可以设置各种图像的button的各种状态(例如正常,突出显示,select)

这是你正在寻找的东西吗? 请详细说明,如果你正在寻找别的东西。

首先你需要给UIButton标签

  @IBOutlet var btn: UIButton! let circleArray = ["circle-gray-big","circle-green-big","circle-red-big"] override func viewDidLoad() { super.viewDidLoad() see.btn.tag = 0 } @IBAction func carbsButton(_ sender: Any) { button.setImage(UIImage(named: circleArray[btn.tag % 3]),forState:Normal) btn.tag = ban.tag + 1 } 

这样做,你一定会得到你想要的..如果它解决了问题点击箭头。