在缩放的 CGRect iOS 上显示 UIView

Posted

技术标签:

【中文标题】在缩放的 CGRect iOS 上显示 UIView【英文标题】:Display UIView on scaled CGRect iOS 【发布时间】:2015-08-25 22:06:40 【问题描述】:

我正在使用 AVMetaData API 来提取 AVMetadataFaceObject 的边界。打印到控制台时,此 CGRect 具有以下值:bounds=0.2,0.3 0.4x0.5。我在将其映射到显示在脸上的 UIView 时遇到了很多麻烦。我可以为我的特定屏幕硬编码一些转换值,使其粗略地出现在正确的位置,但我想要一个解决方案,在任何屏幕尺寸的 previewView 中显示的面上显示 UIView。

有谁知道如何根据 previewView 的大小将这些映射到屏幕上 UIView 的框架?

【问题讨论】:

【参考方案1】:

您应该能够获取捕获区域的大小,我们称之为“captureSize”,然后执行以下操作:

CGRect viewRect;
viewRect.origin.x = bounds.origin.x * captureSize.width;
viewRect.origin.y = bounds.origin.y * captureSize.height;
viewRect.size.width = bounds.size.width * captureSize.width;
viewRect.size.height = bounds.size.height * captureSize.height;

现在,这一切都取决于您的 previewView 是如何设置的,以及它是否有任何内容缩放等,但应该让您了解转换。

【讨论】:

以上是关于在缩放的 CGRect iOS 上显示 UIView的主要内容,如果未能解决你的问题,请参考以下文章

iOS -- 网络/本地 图片 按自定义比例缩放 不失真 方法

如何在没有缩放模式的 iPhone 6 上显示 iOS 应用程序

iOS webview缩放以匹配视网膜显示

iOS 屏幕坐标和缩放

如何在 iOS 上的某个帧中显示 GIF,直到完全加载后才显示,并允许缩放?

如何按比例缩放UIImageView