У меня есть приложение, которое использует наложение на UIImagePicker.Я сделал так, что есть две раскадровки, одна для iPhone и одна для iPad.В моем info.plist я изложил, что оба устройства используют только альбомную ориентацию (справа и слева).В моем ViewController.m у меня есть
-(BOOL)shouldAutorotate
{ return NO;
}
Когда приложение запускает функции обоих устройств, как и ожидалось, не вращаясь.
Однако, когда я открываю UIImagePicker с оверлейным видом для создания дополненной реальности iPhoneне вращается, и iPad делает.Я не хочу, чтобы iPad вращался, но я не знаю, как его предотвратить.
Это код, который я использую для создания наложения и другого представления поверх него.
picker = [[UIImagePickerController alloc] init];
picker.allowsEditing = NO;
picker.sourceType = UIImagePickerControllerSourceTypeCamera ;
picker.showsCameraControls = NO;
self.picker.navigationBarHidden = YES;
self.picker.toolbarHidden = YES;
if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
CGSize screenSize = [[UIScreen mainScreen] bounds].size; // 320 x 568
float scale = screenSize.width / screenSize.height*5/3; // screen height divided by the pickerController height ... or: 568 / ( 320*4/3 )
CGAffineTransform translate=CGAffineTransformMakeTranslation(0,(screenSize.height - screenSize.width*4/3)*0.5);
CGAffineTransform fullScreen=CGAffineTransformMakeScale(scale, scale);
picker.cameraViewTransform =CGAffineTransformConcat(fullScreen, translate);
OverlayView = [[OverlayView alloc] initWithFrame:CGRectMake(-20, -256, 360,1024)];
self.OverlayView.opaque = NO;
self.OverlayView.backgroundColor = [UIColor clearColor];
realView = [[UIView alloc] initWithFrame:CGRectMake(-20, -256, 360,1024)];
[realView addSubview:OverlayView];
picker.cameraOverlayView = realView;
[self presentViewController: picker animated:YES completion:NULL]; //could this be the problem?
Я использую этот метод, чтобы изображение отображало правильный размер экрана iPhone.Это то, что удерживает iPhone от вращения, а не iPad.Любые идеи о том, почему это происходит и как это остановить.