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

I want to change the image every time I tap the button

我想在每次点击按钮时更改图像。
图片名称如下
1.png
2.png
3.png
4.png
按钮的名称是 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 → 循环...

遇到这种情况应该怎么编码?

您可以通过减一而不是像那样将其添加到 imageNum 来执行相同的操作:

imageNum = (imageNum - 1) % imageArray.count

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

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

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