ios - 标签在 Swift 中消失

标签 ios swift label

我在 spriteKit 的场景中有 2 个标签和 2 个 slider

当我触摸 slider 时,它上面的标签消失了,我不知道为什么,

import SpriteKit
var bg = SKSpriteNode()

class Settings: SKScene {

let button   = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
let statButton   = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
let speedLabel = SKLabelNode()
let impulseLabel = SKLabelNode()
var sliderDemo = UISlider()
var gravityDemo = UISlider()
var speedLabelValue = SKLabelNode()
var impulseLabelValue = SKLabelNode()
override func didMoveToView(view: SKView) {
  backgroundImage()


    let height = CGFloat(view.bounds.height/2)
    let width = CGFloat(view.bounds.width/2)



// Change Bird Speed
    speedLabel.fontSize = 30
    speedLabel.text = "Change Speed:"
    speedLabel.position = CGPoint(x: width, y: height*2-60)
    addChild(speedLabel)

    sliderDemo.frame = CGRectMake(width-125, 33, 250, 100)
    sliderDemo.minimumValue = 1
    sliderDemo.maximumValue = 7
    sliderDemo.continuous = true
    sliderDemo.tintColor = UIColor.whiteColor()
    sliderDemo.value = 3.0
    sliderDemo.addTarget(self, action: "speedSlider:", forControlEvents: .ValueChanged)
    view.addSubview(sliderDemo)



// Change Bird Impulse (Gravity)
    impulseLabel.fontSize = 30
    impulseLabel.text = "Change Gravity:"
    impulseLabel.position = CGPoint(x: width, y: height*2-150)
    addChild(impulseLabel)

    gravityDemo.frame = CGRectMake(width-125, 120, 250, 100)
    gravityDemo.minimumValue = 60
    gravityDemo.maximumValue = gravMax
    gravityDemo.continuous = true
    gravityDemo.tintColor = UIColor.whiteColor()
    gravityDemo.value = gravMid
    gravityDemo.addTarget(self, action: "gravitySlider:", forControlEvents: .ValueChanged)
    view.addSubview(gravityDemo)








    let image2 = UIImage(named: "arrowright") as UIImage!
    button.frame = CGRectMake(width*1.5-37.5, height*1.51, 75, 75)
    button.setTitle("Play Game", forState: UIControlState.Normal)
    button.setImage(image2, forState: .Normal)
    button.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
    button.addTarget(self, action: "GameSceneFunc", forControlEvents: UIControlEvents.TouchUpInside)
    button.alpha = 1
    view.addSubview(self.button)



    // Stat Button
    let image = UIImage(named: "stats") as UIImage!
    statButton.frame = CGRectMake(width/2-37.5, height*1.5, 75, 75)
    statButton.setTitle("View Statistics...", forState: UIControlState.Normal)
    statButton.setImage(image, forState: .Normal)
    statButton.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
    statButton.addTarget(self, action: "Statistics", forControlEvents: UIControlEvents.TouchUpInside)
    statButton.alpha = 1
    view.addSubview(self.statButton)



}









func speedSlider(sender:UISlider!)
{
    var sValue = Int32(sender.value)
    speedLabelValue.text = String(sValue)


    if (sValue == 1) {
        sValue = 7
    } else if (sValue == 2) {
        sValue = 6
    } else if (sValue == 3) {
        sValue = 5
    } else if (sValue == 4) {
        sValue = 4
    } else if (sValue == 5) {
        sValue = 3
    } else if (sValue == 6) {
        sValue = 2
    } else if (sValue == 7) {
        sValue = 1
    }

    dur1 = Double(sValue)+0.5
    dur2 = Double(sValue)+0.5


}







func gravitySlider(sender:UISlider!) {
    var sValue2 = Int32(sender.value)
    impulseLabelValue.text = String(sValue2)


    impulse = CGFloat(sValue2)


}

只是为了澄清 - 当我进入场景后点击 slider 时,它上面的标签会消失,当我触摸另一个 slider 时,标签不会消失,无论我先触摸哪个,链接到它的标签都是那个改变

最佳答案

在您的代码片段中,我没有看到您添加了 speedLabelValue:

speedLabelValue.fontSize = 30
speedLabelValue.fontColor = UIColor.whiteColor()
speedLabelValue.text = "v"
speedLabelValue.position = CGPoint(x: width, y: height*2-120)
addChild(speedLabelValue)

我也没有看到您添加您的 impulseLabelValue

impulseLabelValue.fontSize = 30
impulseLabelValue.text = "g"
impulseLabelValue.position = CGPoint(x: width, y: height*2-210)
addChild(impulseLabelValue)

但是,就我而言,当我添加这两个标签时,它更新正常。

我还通过一次手动调用 .ValueChanged 方法来初始化这两个标签:

speedSlider(sliderDemo)
gravitySlider(gravityDemo)

关于ios - 标签在 Swift 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28195598/

相关文章:

iphone - 在 XCode 4 中将 iPhone 应用程序转换为 iPad 应用程序

objective-c - [NSObject 描述]

ios - 如何仅检索当天的日历事件?

swift - 带有默认实现的 swift 中的观察者模式

.net - 如何在 .NET 中调整 MS 图表的 x 轴标签的位置?

iphone - 如何在 Xcode 4.5 中使用 .a 内置的低版本

ios - 当我的应用程序在 ios 后台终止时如何执行代码

ios - 使用ARKit检测手机移动轨迹和距离

Java 编码标准/最佳实践 - 中断/继续标签的命名约定

python - 带有阿拉伯文字的 Tkinter 标签