我想在每次点击按钮时更改图像

时间:2017-04-22 10:37:29

标签: swift3 uiimageview uibutton swift2 uiimage

我想在每次点击按钮时更改图像 图像名称如下 png
png
png
png
按钮的名称是addButton 目前,每次点击addButton时,图像都会切换如下 1. png→2。png→3。png→4。png→1。png→2。png→3。png→循环....
代码如下。

  class ViewController: UIViewController {
        var imageNum: Int = 0
        var imageArray:[UIImage] = []
        var stampImage = UIImage(named: "1")!
        var stampView:UIImageView!
        @IBOutlet weak var addButton: UIButton!
        //@IBOutlet weak var reduceButton: UIButton!

        override func viewDidLoad() {
              super.viewDidLoad()
              for i in 1...4 {
                    imageArray.append(UIImage(named: "\(i).png")!)
              }
              stampView = UIImageView(image: imageArray[0])
              stampView.center = self.view.center
        }
        @IBAction func addButtonTapped(_ sender: UIButton) {

              imageNum = (imageNum + 1) % imageArray.count
              stampView.image = imageArray[imageNum]
              stampImage = UIImage(named: "\(imageNum + 1)")!
        }
  }

接下来,当您点按reduceButton时,您想要显示一张图像 例如,
如果当前显示的图像是2.png,
您想要为每个水龙头显示reduceButton,如下所示 2. png→1。png→4。png→3。png→2。png→1。png→4。png→3。png→循环...

在这种情况下我应该做什么样的编码?

1 个答案:

答案 0 :(得分:0)

你可以做同样的事情,减去一个,而不是像{I}那样将它添加到imageNum

imageNum = (imageNum - 1) % imageArray.count

但由于imageNum可能会变为负数,因此将imageArray.count添加到括号中的表达式会更安全,因此最后一行看起来像:

imageNum = (imageArray.count + imageNum - 1) % imageArray.count

通过添加imageArray.count,我们阻止模运算在负变量上运行,同时还保持所有数之间的正确循环,因为在模数运算的rhs上添加任意数字的乘数不会影响表达式的结果