2017-01-12 1 views
0

Документация и другие руководства предложили мне, что UIScreen.main.bounds в Swift возвращает края экрана. Однако, используя симулятор в Свифт, этого не получается.Какое значение возвращает UIScreen.main.bounds? Проблема с соответствующим размером экрана

Ниже приведены два снимка экрана XCode Simulator (5s, 6) с использованием того же кода.

iPhone5s iPhone6

код находится ниже, но в основном только нарисовать четыре пути вокруг с координатами (screenwidth, ScreenHeight), (- screenwidth, ScreenHeight), (screenwidth, -screenheight), (- screenwidth, -screenheight).

Я не понимаю UIScreen.main.bounds? Или что-то еще вызывает это? В идеале, я хочу иметь возможность программно устанавливать переменные, которые находятся в четырех углах экрана.

Это все сделано в GameScene. Я не добавил никаких функций в раскадровку.

let screenSize = UIScreen.main.bounds 
    let screenWidth = screenSize.width 
    let screenHeight = screenSize.height 
    let pathBound = UIBezierPath(rect: CGRect(x: -screenWidth, y: -screenHeight, width: 5, height: screenHeight*2)) 
    let shapeNode = SKShapeNode(path: pathBound.cgPath) 
    shapeNode.fillColor = UIColor.green 
    shapeNode.strokeColor = UIColor.green 
    addChild(shapeNode) 
    let pathBound2 = UIBezierPath(rect: CGRect(x: screenWidth-5, y: -screenHeight, width: 5, height: screenHeight*2)) 
    let shapeNode2 = SKShapeNode(path: pathBound2.cgPath) 
    shapeNode2.fillColor = UIColor.blue 
    shapeNode2.strokeColor = UIColor.blue 
    addChild(shapeNode2) 
    let pathBound3 = UIBezierPath(rect: CGRect(x: -screenWidth, y: screenHeight-5, width: screenWidth*2, height: 5)) 
    let shapeNode3 = SKShapeNode(path: pathBound3.cgPath) 
    shapeNode3.fillColor = UIColor.red 
    shapeNode3.strokeColor = UIColor.red 
    addChild(shapeNode3) 
    let pathBound4 = UIBezierPath(rect: CGRect(x: -screenWidth, y: -screenHeight, width: screenWidth*2, height: 5)) 
    let shapeNode4 = SKShapeNode(path: pathBound4.cgPath) 
    shapeNode4.fillColor = UIColor.orange 
    shapeNode4.strokeColor = UIColor.orange 
    addChild(shapeNode4) 
    let pathBound5 = UIBezierPath(rect: CGRect(x: -screenWidth, y: 0 
     , width: screenWidth*2, height: 5)) 
    let shapeNode5 = SKShapeNode(path: pathBound5.cgPath) 
    shapeNode5.fillColor = UIColor.purple 
    shapeNode5.strokeColor = UIColor.purple 
    addChild(shapeNode5) 
+0

UIScreen.main.bounds возвращает CGRect (происхождение: CGPoint, размер: CGSize) для всех устройств, предположим, что вы используете, как это: UIScreen .main.bounds.size, то он возвращает размер различных границ, например: (320, 480), (320, 568), (375, 667), (414, 736) –

ответ

0

Что вы думаете о this-

var screenWidth = UIScreen.mainScreen().bounds.size.width 


var screenHeight = UIScreen.mainScreen().bounds.size.height 
Смежные вопросы