我想在每次点击按钮时更改图像
图像名称如下
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→循环...
在这种情况下我应该做什么样的编码?
答案 0 :(得分:0)
你可以做同样的事情,减去一个,而不是像{I}那样将它添加到imageNum
:
imageNum = (imageNum - 1) % imageArray.count
但由于imageNum
可能会变为负数,因此将imageArray.count
添加到括号中的表达式会更安全,因此最后一行看起来像:
imageNum = (imageArray.count + imageNum - 1) % imageArray.count
通过添加imageArray.count
,我们阻止模运算在负变量上运行,同时还保持所有数之间的正确循环,因为在模数运算的rhs上添加任意数字的乘数不会影响表达式的结果