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

Is there a way to convert coordinate points between different device sizes? (iOS)

我在网上学习一些教程,但代码是为 iPad 设计的。我正在使用 iPhone 并且屏幕尺寸不同。问题是作者使用了专门为iPad制作的'magic numbers'。

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

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))

无论如何,我只是想知道是否有一个函数或作弊 sheet 可以在设备大小之间进行数值转换。

谢谢!

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