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

Swift3 我想在每次点击按钮时更改图像,swift3,uiimageview,uibutton,swift2,uiimage,Swift3,Uiimageview,Uibutton,Swift2,Uiimage,我想在每次点击按钮时更改图像。 图像的名称如下所示。 1.巴布亚新几内亚 2.巴布亚新几内亚 3.巴布亚新几内亚 4.巴布亚新几内亚 按钮的名称为addButton。 目前,每次点击addButton,图像切换如下。 1.巴布亚新几内亚→ 2.巴布亚新几内亚→ 3.巴布亚新几内亚→ 4.巴布亚新几内亚→ 1.巴布亚新几内亚→ 2.巴布亚新几内亚→ 3.巴布亚新几内亚→ 循环… 代码如下。 class ViewController: UIViewController { var

我想在每次点击按钮时更改图像。
图像的名称如下所示。
1.巴布亚新几内亚
2.巴布亚新几内亚
3.巴布亚新几内亚
4.巴布亚新几内亚
按钮的名称为addButton。
目前,每次点击addButton,图像切换如下。
1.巴布亚新几内亚→ 2.巴布亚新几内亚→ 3.巴布亚新几内亚→ 4.巴布亚新几内亚→ 1.巴布亚新几内亚→ 2.巴布亚新几内亚→ 3.巴布亚新几内亚→ 循环…
代码如下。

  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,
您希望按如下方式为每个点击显示还原按钮。
2.巴布亚新几内亚→ 1.巴布亚新几内亚→ 4.巴布亚新几内亚→ 3.巴布亚新几内亚→ 2.巴布亚新几内亚→ 1.巴布亚新几内亚→ 4.巴布亚新几内亚→ 3.巴布亚新几内亚→ 循环…


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

你也可以做同样的事情,减去一,而不是像这样将其添加到
imageNum

imageNum = (imageNum - 1) % imageArray.count
但是,由于
imageNum
可能会变为负数,因此将
imageArray.count
添加到括号中的表达式会更安全,因此最后一行如下所示:

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

通过添加
imageArray.count
我们可以防止模运算在负变量上运行,同时还可以保持所有数字之间的正确循环,因为在模运算的rhs上添加任何数字的乘法器都不会影响表达式的结果。在一次运算后的几天,我很担心显示错误。它开始工作没有问题。谢谢你的评论。