我试图让它根据数组中的颜色更改menucene上节点的fillcolor。
我有一个填充了4种颜色的数组,当我按下节点时,它应该根据位置过滤这些颜色。因此,当我点击节点时,它应该将颜色更改为红色,如果我再次点击它会变为绿色,另一个点击会将其更改为紫色,然后再变为蓝色
var colors = [UIColor.blue, UIColor.red, UIColor.green, UIColor.purple]
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first!
var index = 0
if changeColor.contains(touch.location(in: self)) {
index += 1
changeColor.fillColor = colors[index]
if index == 3 {
index = 0
}
}
}
然而,这只能读取一个水龙头,我需要它注册多个水龙头
答案 0 :(得分:2)
在触摸开始函数之外移动索引的初始化,并在更改颜色后递增索引。
var colors = [UIColor.blue, UIColor.red, UIColor.green, UIColor.purple]
var index = 0
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first!
if changeColor.contains(touch.location(in: self)) {
changeColor.fillColor = colors[index]
index += 1
if index == colors.count {
index = 0
}
}
}