有没有办法在不同的设备尺寸之间转换坐标点? (IOS)

时间:2016-03-03 18:50:26

标签: ios iphone swift coordinate-systems screen-size

我正在线上学习一些教程,但代码适用于iPad。我正在使用iPhone,屏幕尺寸也不同。问题是作者使用专门为iPad制作的“魔术数字”。

我成功创建了转化,因此它适用于任何设备。例如:

let xMid : CGFloat = CGRectGetMidX(self.frame)
let yMid : CGFloat = CGRectGetMidY(self.frame)
print("x: \(xMid) y: \(yMid)")

let height : CGFloat = CGRectGetHeight(self.frame)
let width  : CGFloat = CGRectGetWidth (self.frame)

makeSlotAt(CGPoint(x: xMid / 4.0,              y: 0), isGood: true)
makeSlotAt(CGPoint(x: xMid - xMid / 4.0,       y: 0), isGood: false)
makeSlotAt(CGPoint(x: xMid + xMid / 4.0,       y: 0), isGood: true)
makeSlotAt(CGPoint(x: xMid * 2.0 - xMid / 4.0, y: 0), isGood: false)

makeBouncerAt(CGPoint(x: 0,          y: 0))
makeBouncerAt(CGPoint(x: xMid / 2.0, y: 0))
makeBouncerAt(CGPoint(x: xMid,       y: 0))
makeBouncerAt(CGPoint(x: xMid * 1.5, y: 0))
makeBouncerAt(CGPoint(x: xMid * 2.0, y: 0))

无论如何,我只是想知道是否有功能或备忘单在设备尺寸之间进行了数字转换。

谢谢!

1 个答案:

答案 0 :(得分:3)

如果您使用的教程使用幻数,请立即停止使用。如果您使用自动布局并遵循Apple的iOS 7及更高版本的指南你很少,如果有的话,你需要使用魔术数字。您创建的函数是代码内测量的良好开端。