所以这是我第一次使用 iPad 摄像头,我在使用 UIImagePickerController 时遇到了一些问题,我似乎无法将其锁定为纵向模式。
首先我继承了 UIImagePickerController 并实现了
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return (interfaceOrientation==UIInterfaceOrientationPortrait);
}
但后来我读到它没有用,因为 UIImagePickerController 不应该被子类化。
接下来我尝试的是通过选择器覆盖,我为它创建了一个类并实现了相同的方法。它仍然不起作用,每次我向选择器显示叠加层时,该方法似乎只被调用一次。
- (void)viewDidLoad{
[super viewDidLoad];
_imagePicker = [[UIImagePickerController alloc] init];
[_imagePicker setDelegate:self];
[_imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[_imagePicker setCameraDevice:UIImagePickerControllerCameraDeviceFront];
[_imagePicker setCameraCaptureMode:UIImagePickerControllerCameraCaptureModePhoto];
[_imagePicker setAllowsEditing:YES];
[_imagePicker setShowsCameraControls:YES];
[_imagePicker setNavigationBarHidden:YES];
[_imagePicker setToolbarHidden:YES];
[_imagePicker setWantsFullScreenLayout:YES];
CameraOverlay *_overlay = [[CameraOverlay alloc] init];
[_overlay set_imagePicker:_imagePicker];
[_imagePicker setCameraOverlayView:_overlay.view];
}
-(IBAction)takePicture:(id)sender {
[self presentModalViewController:_imagePicker animated:YES];
}
我刚刚尝试了其他方法,锁定呈现 View Controller 的方向,但 UIImagePickerController 仍然在各个方向旋转。 我注意到的另一件事是方向更改也会更改 UIImagePickerController 的设置。我将相机设置为前置相机,当我用它拍照时,旋转 iPad 并尝试拍摄另一张照片,相机设置为后置相机。很奇怪。
那么我错过了什么,关于如何锁定相机方向有什么建议吗? :)
编辑:混淆了 UIImagePickerController 和 UIPickerView,已修复:)
最佳答案
您始终可以使用 AVFoundation 滚动您自己的相机实现.
关于objective-c - 如何防止 UIImagePickerController 改变方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11034502/