获取与屏幕大小 iOS 相关的 UIView 原点
Posted
技术标签:
【中文标题】获取与屏幕大小 iOS 相关的 UIView 原点【英文标题】:get UIView origin with aspect to screen size iOS 【发布时间】:2020-05-10 20:19:49 【问题描述】:我想从一台设备获取 UIView 原点并将其保存到服务器。在其他设备上,我想在相同的原点显示 UIView。问题在于屏幕尺寸。
假设我在 iPhone 11 中获得 UIView 位置并将其保存在服务器上。现在,我从 iPhone 6s 设备上的服务器获取保存的位置,并在该位置显示 UIView。由于屏幕尺寸不同,两个设备上的 UIView 位置不同。
有什么解决办法吗? 有什么方法可以让屏幕尺寸的原点方面适用于所有屏幕尺寸?
【问题讨论】:
因为我是新来的,如果有人想要更多解释,我在这里解释 尝试转换为屏幕坐标yourView.convert(yourView.frame.origin, to: UIScreen.main)
我试过了。如果两个设备的屏幕尺寸相同,那很好。当屏幕尺寸不同时就会出现问题
使用标准化函数将特定位置转换为相对于屏幕尺寸的“百分比”位置。
请你写示例代码对我很有帮助。
【参考方案1】:
第一个设备
let yourPositionOnView: CGPoint = ...
let screenPosition = yourView.convert(yourPositionOnView, to: UIScreen.main)
let relativePosition = CGPoint(
x: screenPosition.x / UIScreen.main.bounds.width,
y: screenPosition.y / UIScreen.main.bounds.height
)
第二台设备
let screenPosition = CGPoint(
x: relativePosition.x * UIScreen.main.bounds.width,
y: relativePosition.y * UIScreen.main.bounds.height
)
【讨论】:
完美运行!谢谢兄弟。以上是关于获取与屏幕大小 iOS 相关的 UIView 原点的主要内容,如果未能解决你的问题,请参考以下文章
在情节提要 IOS 7 中根据屏幕宽度和高度修复两个 uiview 大小