无法在Swift的场景中心放置标签

时间:2015-09-10 21:27:56

标签: swift

我试图将UILabel放在我场景的中心位置。我这样做是通过获取中心值然后使用convertPointToView函数,然后减去宽度,结果不在中心。如果有人能告诉我为什么我在做什么是错的,或者甚至可能为我修好,我会非常感激。结果如下:(http://i1087.photobucket.com/albums/j461/niiooo/Screen%20Shot%202015-09-10%20at%205.26.37%20PM.png

import SpriteKit

class GameScene: SKScene {

var testSprite: SKSpriteNode = SKSpriteNode(imageNamed: "Spaceship")
var testLabel: UILabel = UILabel()

func defineTestLabel(var #label: UILabel) -> UILabel {
    var labelXPos: Int = Int()

    labelXPos = Int(convertPointToView(CGPoint(x: (self.size.width / 2)  - 50, y: 0)).x)
    label = UILabel(frame: CGRect(x: labelXPos, y: 100, width: 100, height: 100))
    label.text = "Test"
    label.textAlignment = NSTextAlignment.Center
    label.layer.borderColor = UIColor.blackColor().CGColor
    label.layer.borderWidth = 5
    return label
}

override func didMoveToView(view: SKView) {
    self.view?.addSubview(defineTestLabel(label:self.testLabel))
}

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
    /* Called when a touch begins */

    for touch in (touches as! Set<UITouch>) {
        let location = touch.locationInNode(self)
    }
}

override func update(currentTime: CFTimeInterval) {
    /* Called before each frame is rendered */
}
}

1 个答案:

答案 0 :(得分:0)

您可以使用场景midX减去标签宽度的一半。