lock UIImagePickerController in Portrait mode in i

2020-07-13 11:46发布

In my IOS app, when I open the camera I have placed an image over the camera view. It looks good in portrait mode. But when it is changed to landscape mode it looks some odd. So I want to lock the UIImagePickerController in Portrait mode.

Following is my code for ui image picker controller

UIImagePickerController *imgPkr = [[UIImagePickerController alloc] init];
imgPkr.delegate = self;
imgPkr.sourceType = UIImagePickerControllerSourceTypeCamera;

How it can be locked in portrait mode....

8条回答
不美不萌又怎样
2楼-- · 2020-07-13 12:08

Or, you can subclass the UIImagePickerController:

Create a new UIImagePickerController class and just add these lines to it.

- (BOOL)shouldAutorotate{
return NO;
}

Import it to the class that uses the camera and instead of using default UIImagePickerController, use the class that you created.

Your camera itself should stop from auto rotating.

查看更多
SAY GOODBYE
3楼-- · 2020-07-13 12:13

This is not the best solution, but it works:

AppDelegate *appDelegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];
[appDelegate.window addSubview:cameraOverlay];
imgPicker.cameraOverlayView = appDelegate.window.superview;

The camera on the background still rotates, but your overlay view doesn´t. Hope it works for you

查看更多
登录 后发表回答