Я просто пытаюсь нарисовать прямоугольник и поместить его в нижнюю левую часть экрана.
var rectW:CGFloat = CGFloat(200.0)
var rectH:CGFloat = ceil(self.frame.height * 0.15)
var rect = SKShapeNode(rectOfSize: CGSize(width: rectW, height: rectH));
let posX:CGFloat = 0.0 + (rect.frame.width / 2)
let posY:CGFloat = self.frame.height - (self.frame.height - rect.frame.height)
rect.position = CGPointMake(posX,posY)
rect.fillColor = SKColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
rect.lineWidth = 1
self.addChild(rect)
Проблема в том, что, хотя я считаю, что все математические расчеты верны, прямоугольник составляет около 38 точек/пикселей под экраном, как вы можете видеть на изображении ниже (белая рамка показывает предел).
Для вашей информации вот вывод позиций, высоты и ширины.
PosX: 100.5
PosY: 117.0
Rect Width: 201.0
Rect Height: 117.0
Frame Height: 768.0
Frame Weight: 1024.0
Если я просто возьму эту строку, но добавлю 38 точек/пикселей, это сработает, но почему? Есть ли что-то, что мне не хватает?
let posY:CGFloat = self.frame.height - (self.frame.height - rect.frame.height) + 38