2016-04-12 19 views
3

Bir alt görüntünün (SKView) doğru boyutunu bulmaya/ayarlamaya çalışıyorum.SKView alt görünümü ve SKScene nasıl boyutlandırılır

Bir UIView oluşturmak için film şeridini ve SKView olan bir alt görünümü kullanıyorum. Program aracılığıyla SKView boyutlarıyla SKScene oluşturmak istiyorum.

Benim düşüncem scene.size.height ve scene.size.width SKView'un yüksekliğine ve genişliğine eşit olacaktır. Bunu test etmek için, her köşede dört mavi daire çiziyorum ve sınırlarda kırmızı çizgiler çiziyorum. Dört mavi köşe noktasını ve yatılı çizgiyi görmeyi beklediğimde sadece sol alt köşeyi görebiliyorum.

Lütfen Sahne Alanı'ndaki siyah daireleri dikkate almayın, bunlar ilgisizdir.

iPhone 6 görüntüsü (portre)
iPhone 6 Screenshot (portrait)

iPhone 6 Ekran Görüntüsü (manzara) iPhone 6 Screenshot (landscape)

ekledim SW (Güney Batı), SE, KD ve KB etiketler

ViewController SKView Referansıyla I SKSCene Main.storyboard

kısıtlamalar (func newGame bakınız)

import UIKit 
import SpriteKit 


class CenterView: UIViewController, ActionDelegate { 
    @IBOutlet weak private var navBar:UINavigationBar! 
    @IBOutlet weak private var titleBar:UINavigationItem! 
    @IBOutlet weak private var gameView:SKView! 

    var navigation:NavigationDelegate? 
    var action:ActionDelegate? 
    var game:GameDelegate? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.action = self 
     newGame() 
    } 

    @IBAction func menuClick(sender: AnyObject) { 
     navigation?.toggleLeftPanel() 
    } 

    func setTitleBarTitle(title: String) { 
     titleBar.title = title 
    } 

    func newGame() { 
     print("skview bounds: \(self.gameView.bounds.size)") 
     let game = GameScene(size: self.gameView.bounds.size) 
     self.game = game 
     game.action = action 
     game.scaleMode = .ResizeFill 
     self.gameView.presentScene(game) 
    } 
} 

Main.storyboard burada oluşturulur

Constraints

ekleme Köşe Çemberleri & Sınır Çizgileri

if let scene = self.scene { 
      let dot = SKShapeNode(circleOfRadius: 10) 
      dot.fillColor = UIColor.blueColor() 
      dot.position = CGPoint(x: 0,y: 0) 

      let dot1 = SKShapeNode(circleOfRadius: 10) 
      dot1.fillColor = UIColor.blueColor() 
      dot1.position = CGPoint(x: scene.size.width,y: 0) 

      let dot2 = SKShapeNode(circleOfRadius: 10) 
      dot2.fillColor = UIColor.blueColor() 
      dot2.position = CGPoint(x: 0,y: scene.size.height) 

      let dot3 = SKShapeNode(circleOfRadius: 10) 
      dot3.fillColor = UIColor.blueColor() 
      dot3.position = CGPoint(x: scene.size.width,y: scene.size.height) 


      let left = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 3, height: scene.size.height)) 
      let top = SKShapeNode(rect: CGRect(x: 0, y: scene.size.height, width: scene.size.width, height: 3)) 
      let right = SKShapeNode(rect: CGRect(x: scene.size.width, y: 0, width: 3, height: scene.size.height)) 
      let bottom = SKShapeNode(rect: CGRect(x: 0, y: 0, width: scene.size.width, height: 3)) 

      left.fillColor = UIColor.redColor() 
      top.fillColor = UIColor.redColor() 
      bottom.fillColor = UIColor.redColor() 
      right.fillColor = UIColor.redColor() 


      scene.addChild(dot) 
      scene.addChild(dot1) 
      scene.addChild(dot2) 
      scene.addChild(dot3) 

      scene.addChild(left) 
      scene.addChild(top) 
      scene.addChild(right) 
      scene.addChild(bottom) 
     } 

cevap

1

Benim kısıtlamaları doğru ayarlanmış olmadığını ortaya çıktı.

Kısıtlamalar
ios view constraints

Sonucu
iPhone 4s portrait

İlgili konular