ios - x 和 y 位置因不同的设备而异

标签 ios swift image coordinates

我正在使用静态坐标在 View 上添加图像,并且它在 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)

所以如何在所有设备上设置相同的图像位置请帮助我

最佳答案

它出现在不同地方的原因是因为safe area由 X+ 设备引入。要正确设置 Y 坐标,您需要考虑此插图。现在,由于您是手动定位 View ,因此您还需要手动计算安全区域插入。

top inset可以通过获取状态栏高度来实现:

UIApplication.shared.statusBarFrame.height

或者您可以直接使用 safeAreaInsets 并计算所需属性的偏移量:

view.safeAreaInsets.bottom
view.safeAreaInsets.top

关于ios - x 和 y 位置因不同的设备而异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58427111/

相关文章:

ios uitableview - 滚动时,单元格在更新正确数据之前显示错误数据

java - 图像旋转后使用 DrawImage() 显示整个图像

image - 使用WiX时,为什么我的MSI图像看起来损坏了?

ios - 与分析服务集成的架构/设计模式(flurry/google analytics)

ios - 使用 AutoLayout iOS 8 的 UICollectionView 单元格自动调整大小

javascript - React-native-vision-camera 无法访问后面的普通相机

ios - 为什么实例变量被苹果认为是不好的做法?

module - 什么是 Swift 编译器 - 在 Xcode 6 build设置中搜索路径导入路径?

ios - 键盘超越日期选择器

linux - 使用 Linux (Debian) 获取图像中像素的颜色