2015-08-25 2 views
0

Я использую API AVMetaData для извлечения границ объекта AVMetadataFaceObject. При печати на консоли этот CGRect имеет следующие значения: bounds={0.2,0.3 0.4x0.5}. У меня довольно много проблем с отображением этого в UIView, который отображается на лице. Я могу жестко закодировать некоторые значения конверсий для моего конкретного экрана, чтобы заставить его грубо оказаться в нужном месте, но мне бы хотелось, чтобы решение отображало UIView по лицу, показанному в моем PreviewView, на любом размере экрана.Показать UIView на масштабированном CGRect iOS

Кто-нибудь знает, как сопоставить их с рамкой UIView на экране, основанной на размере предварительного просмотра?

ответ

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 настройки и является ли оно или нет имеет любое масштабирование содержимого и т. д., но должно дать вам смысл преобразования.

Смежные вопросы