2016-06-04 12 views
1

Dies ist mit iOS 9. Ich kann die Hintergrundfarbe eines SKView nicht einstellen, es wird immer mit dem Standard-Grau gerendert. Gibt es einen Weg dahin?Kann SKView nicht ändern backgroundColor

let frame = CGRect(x: 0, y: 0, width: 200, height: 100) 
let spriteView = SKView(frame: frame) 
spriteView.backgroundColor = .blueColor() 
self.view.addSubview(spriteView) 

Wenn der obige Code ausgeführt wird, ist der SKView grau statt blau. Was ich wirklich tun möchte, ist allowsTransparency = true, aber ich kann das nicht funktionieren, wenn ich die Hintergrundfarbe nicht auf clearColor ändern kann.

Wer sonst läuft in das? Irgendwelche Problemumgehungen?

aktualisieren

Auch bei @ Danilo Vorschlag, dies zeigt noch so grau:

let frame = CGRect(x: 0, y: 0, width: 200, height: 100) 
let spriteView = SKView(frame: frame) 
spriteView.backgroundColor = .clearColor() 
spriteView.allowsTransparency = true 
spriteView.opaque = false 

aktualisieren

Offenbar die backgroundColor eines SKView Einstellung nicht wirksam ist, aber wenn Sie setzen es auf alles dann allowsTransparency = true funktioniert nicht.

+0

try undurchsichtig gesetzt = NO – Danilo

+0

@Danilo noch grau :( – keegan3d

Antwort

4

Zusätzlich zum Hinzufügen einer SKView benötigen wir eine SKScene, die von der SKView präsentiert werden soll; wir passen dann die backgroundColor der SKScene an/ändern. Ein Knoten wird wiederum von der Szene hinzugefügt.

Zum Beispiel:

//create a SKView, which takes up the same frame as our view 
let spriteView = SKView(frame: self.view.bounds) 

//adding spriteView as a child view of our view 
self.view.addSubview(spriteView) 

//Here, we create a scene, which is the root object of 
//the graph 
let scene = SKScene(size: spriteView.frame.size) 
scene.backgroundColor = .orangeColor() 

//As said, we present the scene with our SKView 
spriteView.presentScene(scene) 

//Here, we create a node, which will be added by our scene 
//This node takes up a size that you originally created and has the 
//background color set to blue 
let nodeFrame = CGRect(x: 0, y: 0, width: 200, height: 100) 
let node = SKSpriteNode(color: .blueColor(), size: nodeFrame.size) 

//The following just serves to show how we can adjust the node's 
//position; I will leave that to you 
node.position = CGPointMake(scene.frame.size.width - 200, scene.frame.size.height - 100) 

//Finally, we add the node to our scene 
scene.addChild(node) 
+0

Dank war dies nicht der ganz die Antwort, aber es hat mir geholfen, es zu finden Anscheinend Einstellung der '. backgroundColor eines SKView hat keine Wirkung, aber wenn Sie versuchen, es auf irgendwas zu setzen, dann funktioniert 'allowTransparency = true' nicht. – keegan3d

0
let spriteView = SKView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) 
    let spriteKitScene = SKScene(size: spriteView.frame.size) 
    spriteKitScene.backgroundColor = SKColor.blackColor() 
    spriteView.presentScene(spriteKitScene) 
    self.view.addSubview(spriteView)