2016-08-08 4 views
1

Я пытаюсь создать label на моем SKScene, но он не отображается. Я не знаю, что не так. Код кажется прекрасно:UILabel не отображается на SKScene

class end: SKScene { 

    var label = UILabel() 

    override func didMoveToView(view: SKView) { 
     scene?.backgroundColor = UIColor(red: CGFloat(59.0/255.0), green: CGFloat(89.0/255.0), blue: CGFloat(152.0/255.0), alpha: CGFloat(1.0)) 

     label.text = "Game Over!" 
     label.backgroundColor = UIColor.blackColor() 
     label = UILabel(frame: CGRect(x: 0, y: 0, width: view.frame.width/3, height: 30)) 
     label.center = CGPoint(x: view.frame.size.width/2, y: view.frame.size.width/7) 
     label.textColor = UIColor.whiteColor() 
     self.view?.addSubview(label)  
    } 
} 
+0

как вы знаете, это не появляются? во-первых, что такое .центр? Это не нормальное свойство UILabel из того, что я могу сказать – Knight0fDragon

+0

n/m center является членом UIVIew, поэтому теперь проблема заключается в том, что такое координаты. Я предполагаю, что вы используете автоматическую компоновку, и в то время, когда вызывается метод createMoveToView, вы работаете в координатах по умолчанию, тогда автоопределение берет на себя перемещение вида за пределами некоторой видимой области видимости, возможно, – Knight0fDragon

ответ

1

Проблема вы установили textColor и backgroundColor как whiteColor(), изменить любой из них будет показывать текст правильно.

Edit:

Я думаю, что вы хотите добавить метку внутри view, что вы передаете в качестве параметра, чем использовать view.addSubview(label) вместо self.view?.addSubview(label).

+0

. Я изменил фон на черный, но это все еще не показано. даже если бы я не изменился, ярлык белого цвета должен был отображаться на экране, но он вообще не отображается –

+0

@NDoc self.view заполняется во время didMoveToView называется – Knight0fDragon

0

В Sprite-kit вы должны использовать SKLabelNode в своей сцене, вместо того чтобы добавить метку UIKit прямо к вашему виду, потому что это может привести к плохой производительности вашей игры.

Я делаю пример:

let titleLabel = SKLabelNode(fontNamed:"HelveticaNeue-Bold") 
titleLabel.text = String("Game Over!") 
titleLabel.fontColor = SKColor.whiteColor() 
titleLabel.position = CGPoint(x: size.width/2.0, y: size.height/2) 
self.addChild(titleLabel) 

Вы можете найти SKLabelNode также в Sprite-комплект Xcode демо-проект "Привет, мир":

enter image description here

+1

, это действительно помогло! Спасибо большое! –

+0

Очень хорошо, приятно это знать, удачи для вашего проекта –