2015-06-13 3 views
1

Я пытаюсь нарисовать прямоугольник вокруг экрана. Вот мой код:Почему мой прямоугольник рисуется неправильно?

let viewRect = SKShapeNode(rect: self.view!.frame) 
    viewRect.strokeColor = SKColor.whiteColor() 
    viewRect.lineWidth = 2.0 
    addChild(viewRect) 

Я использую self.view!.frame вместо self.frame, потому что моя сцена не такой же размер, как мой экран (сцена растягивается, чтобы заполнить мой экран).

я ожидал бы код, чтобы нарисовать прямоугольник вокруг моего экрана, но он рисует это вместо того, чтобы (белый прямоугольник, что рисуется):

Кто знает, почему он не обращается вокруг мой экран?

Размер сцены: 1024x768 Вид Размер: 414x736 Режим Масштаб: Аспект Fill

+0

Пожалуйста, прочитайте все это, чтобы узнать, применимо ли к вашей ситуации что-то: http://stackoverflow.com/a/30714859/3402095 В то же время вы можете обновить свой вопрос с помощью некоторой отладочной информации, такой как - каков ваш реальный размер сцены, каков ваш размер представления и каков режим масштабирования вашей сцены ... – Whirlwind

+0

Немного сложно сказать, поскольку ваш фрагмент кода вне контекста - но это может быть ваше использование «рамки» (позиция представления в своем супервизии), а не «границы» (положение и размер самого представления), чтобы установить размер прямоугольника. –

+0

@AliBeadle К сожалению, ни один из них, похоже, не работает. – dfgdfg

ответ

0

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

+0

Спасибо! Как я могу это исправить? – dfgdfg

+0

Это зависит от того, что вы пытаетесь достичь. В простейшем случае вы можете просто использовать свой известный размер сцены - 1024 768, но, поскольку Whirlwind говорит, что оставляя свою сцену с этим размером по умолчанию, вероятно, не то, что вы хотите, и в любом случае часть Aspect Fill вашей сцены, вероятно, вне экрана. Вы читали и понимали заметки Яблока по этому вопросу: https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Nodes/Nodes.html –