在缩放的 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 应用程序