Ios 防止用户更改标签-spriteKit

Ios 防止用户更改标签-spriteKit,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我有一个标签,每5秒取一个不同的值(字符串值:“蓝色”、“粉色”、“绿色”、“橙色”) 我想警告用户,标签将在1秒前更改。 例如,标签的背景色应在标签获取另一个值前1秒为红色 每5秒调用颜色更改函数的代码 let timerFunc: NSTimer = NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: Selector("colorChange"), userInfo: nil, repeats: true)

我有一个标签,每5秒取一个不同的值(字符串值:“蓝色”、“粉色”、“绿色”、“橙色”)

我想警告用户,标签将在1秒前更改。 例如,标签的背景色应在标签获取另一个值前1秒为红色

每5秒调用颜色更改函数的代码

let timerFunc: NSTimer = NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: Selector("colorChange"), userInfo: nil, repeats: true)
随机更改标签值的代码

 func colorChange() {
    let minRandomValue: UInt = 0
    let maxRandomValue: UInt = 4
    var numberRandom: UInt = UInt()

    numberRandom = UInt(arc4random()) % (maxRandomValue - minRandomValue)

    switch numberRandom {
    case 0: couleur.text = "Blue"; 
    case 1: couleur.text = "Green"; 
    case 2: couleur.text = "Orange"; 
    case 3: couleur.text = "Pink"; 
    default: println("value problem")
    }
}

稍后,我将随机设置5秒计时器延迟。非常感谢。Xcode 6.4,SDK 8.0

将计时器间隔更改为1.0,以便每秒调用一次
couleurChange
方法。在
couleurChange
方法中,使用计数器跟踪时间。当计数器达到4时,更改标签的背景色。当计数器达到5时

  • 更改标签的文本
  • 将背景颜色恢复为正常值
  • 将计数器设置回0
尝试以下方法

1) 创建一个节点, 2) 创建一个红色矩形SKSpriteNode并将其添加到SKNode, 3) 创建一个SKLabelNode并将其添加到SKNode, 4) 对self运行以下操作

let changeColorWaitChangeBackground = SKAction.sequence([
        SKAction.runBlock(self.changeColor),
        SKAction.waitForDuration(4, withRange:2),
        SKAction.runBlock(self.changeAlpha),
        SKAction.waitForDuration(1),
    ])
在changeColor()中,设置颜色字符串并将红色SKSpriteNode的alpha设置为0.0


在changeAlpha()中,将红色SKSpriteNode的alpha设置为1.0。

您有什么问题?此代码有效,我想问如何在标签更改其值前1秒将标签背景设置为红色。我不知道如何开始编码这个设置另一个延迟4.0秒的计时器,或者如果它是随机的,randomValue-1你解决了这个问题吗?是的,我用两个计时器解决了它,请重复false。感谢您的帮助为什么在没有完成实际工作的情况下调用函数3次?两个独立的计时器,一个4秒和一个5秒更干净…没有工作完成意味着没有处理器周期浪费。对于两个计时器,计时器必须是不重复的,这意味着不断地重新安排它们,而且imo比仅仅几个额外的计时器回调调用更糟糕。谢谢你们,我会尝试的。顺便问一下,是否有任何属性可以更改SKLabelNode的背景色?或者我需要创建另一个精灵?@user3722523我想你需要在标签后面放一个SKShapeNode来给它一个背景。足够公平了@user3386109。。。不过,在进行小型性能优化之前,我几乎总是更喜欢可读性。但无论什么能让你的船漂浮。用户3722523,我们的两种解决方案都适用于您。我的解决方案提供更精确的计时,以防您需要1.32秒的警告。