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

问题描述:

我想每次点击按钮时更改图像。
图像的名称如下。
1. PNG
2. PNG
3. PNG
4. PNG
按钮的名称是Add按钮。
当前,每次点击addButton时,图像将如下切换。
1. png→2. png→3. png→4. png→1. png→2. png→3. png→loop ....
代码如下。
我想在每次点击按钮时更改图像

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 PNG 4. 3.→→PNG PNG 2. 1.→→PNG PNG 4. 3.→→PNG环...

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

你可以做同样的减去一个,而不是将它添加到imageNum这样的:

imageNum = (imageNum - 1) % imageArray.count 

但由于imageNum可以得到否定这将是更安全的在括号中添加imageArray.count来表达这样的最后一行将如下所示:

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

通过添加imageArray.count我们防止模操作上负变运行,同时也保持了在所有数字之间进行正确的循环,这是因为在模数操作的rhs上添加任何乘数的数字不会影响表达式的结果

+0

在显示错误后几天我很担心。 它开始工作没有问题。 感谢您的评论。 – ginger