Ios 不同设备的x和y位置不同

Ios 不同设备的x和y位置不同,ios,swift,image,coordinates,Ios,Swift,Image,Coordinates,我在视图中添加了静态坐标的图像,并在iPhone 6和8上显示在相同的位置,但当我在iPhone XR中运行时,图像位置发生了变化,这是我的代码 var xCo = 166.5 var yCo = 328.0 let imageView = UIImageView() imageView.image = #imageLiteral(resourceName: "ic_Pin") imageView.frame = CGRect(x: xCo, y: yCo, width: 22, height

我在视图中添加了静态坐标的图像,并在iPhone 6和8上显示在相同的位置,但当我在iPhone XR中运行时,图像位置发生了变化,这是我的代码

var xCo = 166.5
var yCo = 328.0

let imageView = UIImageView()
imageView.image = #imageLiteral(resourceName: "ic_Pin")
imageView.frame = CGRect(x: xCo, y: yCo, width: 22, height: 22)
view.addSubview(imageView)

因此,如何在所有设备上设置相同的图像位置请帮助我解决此问题。它出现在不同位置的原因是由于X+设备引入的。要正确设置Y坐标,需要考虑此插图。现在,由于您要手动定位视图,因此还需要手动计算安全区域插入

通过获取状态栏高度可以实现顶部插入:

UIApplication.shared.statusBarFrame.height
或者,您可以直接使用
safeAreaInsets
计算所需属性的偏移量:

view.safeAreaInsets.bottom
view.safeAreaInsets.top

您能告诉我如何计算偏移量吗?@Green您是否知道自动布局和使用帧,因为您必须这样做?请检查我的另一个问题