我的应用程序只允许横屏模式。我在项目属性中强制设置了此选项,包括目标>总结,并且在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;