Как ограничить наложение только предварительным просмотром камеры UIImagePickerController

Я использую UIImagePickerController() чтобы отобразить камеру в моем быстром iOS-приложении и позволить пользователю делать снимки. Я хотел бы показать сетку как наложение, поэтому я начал реализовывать ее как .cameraOverlayView

Проблема заключается в том, что наложенное изображение или виды будут распространяться на черные полосы сверху и снизу вида с камеры. Это нежелательно, поскольку линия сетки будет проходить над кнопкой камеры, кнопкой отмены и т. Д.

Я не мог найти способ доступа к кадру окна предварительного просмотра камеры, чтобы ограничить наложение только этим. Что мне не хватает?

1 ответ

Решение

На самом деле, это может быть немного раздражающим, нет способа получить размеры этих полос или области предварительного просмотра камеры, и вы не можете получить подпредставления UIImagePickerController и поэтому вы не можете добавить ограничения для этого. Но вы можете использовать тот факт, что соотношение сторон области предварительного просмотра камеры всегда известно как 4/3, а ширина наложения должна быть шириной экрана, а высота должна быть (widthScreen / 3) * 4

Другой способ установить imagePicker.showsCameraControls = false и создавать пользовательские элементы управления с наложением на fullScreen.
(использовать imagePicker.cameraViewTransform для того, чтобы установить область предварительного просмотра камеры на весь экран).

Другие вопросы по тегам