Reputation: 18581
I have the following in GameViewController.swift
class GameViewController: UIViewController {
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
println(self.view.frame.size)
var skView:SKView = self.view as SKView
if skView.scene == nil {
skView.showsFPS = false
skView.showsNodeCount = false
// Create and configure the scene.
var scene : SKScene = GameScene(size: skView.bounds.size)
scene.scaleMode = SKSceneScaleMode.AspectFill
// Present the scene.
skView.presentScene(scene)
}
}
override func prefersStatusBarHidden() -> Bool {
return true
}
}
it prints :
(320.0,480.0)
How to make the GameScene
fill the whole screen instead of leaving black bands at the top and bottom of the screen?
the code in GameScene.swift
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
/* Setup your scene here */
var background : SKSpriteNode = SKSpriteNode (imageNamed: "background.png")
background.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2)
self.addChild(background)
}
}
background.png
is an image of size 640x1138
The deployment target is iOS 7.1
I am using Xcode 6.0.1 (Beta)
Upvotes: 6
Views: 5988
Reputation: 53
First go onto your Xcode project
click the .xcodeproj file
Then under deployment info there should be a checkbox that says requires full screen check this and then the whole screen should be used!
EDIT
You must also assign a launch screen it as it was full screen for me momentarily but stopped once I removed the launch screen, you can assign It just under the deployment info it is under
App Icons and Launch Images
even if you haven't created one Xcode usually creates one for you when you first make the project it should be under the name "main"
Upvotes: 0
Reputation: 2287
New File - iOS - User Interface - Launch Screen
Project - General - Launch Screen File
sceneNode.scaleMode = .resizeFill
Upvotes: 4
Reputation: 18581
I had to manually add an image set named LauchImage
in the Images.xcassets
.
Upvotes: 2
Reputation: 1680
You need to resize your background node to match scene.
background.size = self.frame.size
Upvotes: 0