Заставить UIImagePickerController сфотографировать в портретной ориентации / размерах iOS

Единственная разрешенная ориентация в моем приложении - альбомная. Я форсирую это в свойствах проекта под target> летний и разрешить только портрет вshouldAutorotateToInterfaceOrientation

Проблема заключается в том, что когда я делаю снимок, держа телефон горизонтально (в альбомной ориентации), снимок будет сделан в горизонтальной ориентации, а пользовательский интерфейс останется в портретном режиме.

Это означает, что в альбомном режиме я получаю широкое изображение 3264 x 2448 вместо высокого изображения (2448 x 3264) в портретном режиме.

Затем пользователь может обрезать изображение, но если изображение получено в ландшафтном режиме, я получаю очень уродливые растянутые изображения. Добавление границ или переключение пользовательского интерфейса в альбомный режим не вариант.

Есть ли способ заставитьUIImagePickerController сделать фотографию в портретном измерении, хотя телефон держится горизонтально (альбомный режим)?

Я инициализируюUIImagePickerController со следующими настройками:

    imagePicker =[[UIImagePickerController alloc] init];
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
    imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    imagePicker.showsCameraControls = NO;
    imagePicker.modalPresentationStyle = UIModalPresentationFullScreen;
    imagePicker.wantsFullScreenLayout = YES;
    imagePicker.cameraViewTransform = CGAffineTransformScale(imagePicker.cameraViewTransform,CAMERA_TRANSFORM, CAMERA_TRANSFORM);
    imagePicker.navigationBarHidden = YES;
    imagePicker.toolbarHidden = YES;
    [self presentModalViewController:imagePicker animated:NO];
    imagePicker.cameraOverlayView = self.cameraOverlay;
    imagePicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;

Ответы на вопрос(1)

Ваш ответ на вопрос