在缩放的CGRect iOS上显示UIView

时间:2015-08-25 22:06:40

标签: ios uiview cgrect avmetadataitem

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

有没有人知道如何根据预览视图的大小将这些映射到屏幕上的UIView的帧?

1 个答案:

答案 0 :(得分:0)

您应该能够获取捕获区域的大小,让我们称之为“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的设置方式以及它是否有任何内容缩放等,但应该让您了解转换。