在部队的UIImagePickerController横向(Force landscape orie

2019-07-19 00:56发布

我是新的iOS开发和Im发展我的第一个应用程序。 (很抱歉,如果进出口问一个新手的问​​题)

我的应用程序是所有在纵向,除了我使用的UIImagePickerController拍照在应用程序中使用住的地方,我在做什么是:

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage];
picker.allowsEditing = NO;
[self presentModalViewController:picker animated:YES];

由于我的应用程序是在人像 ,我需要一些东西到的UIImagePickerController风景而已 。 如果我尝试使用:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

看来,我不能用,因为我的Xcode的标识作为该行一个错误(可能是因为Xcode的版本,我不知道)。 而且我不知道,但似乎如果我正在开发适用于iOS 5.1我需要实现一些适用于iOS 6.0也一样 ,是正确的吗?

有人可以帮助我了解什么是需要做这个的UIImagePickerController,并且仅此视图控制器的应用,工作在景观方向和iOS的5.1和6的作品?

问候

Answer 1:

具体根据UIImagePickerController类参考

重要提示UIImagePickerController类只支持肖像模式。 这个类是打算按原样使用,不支持子类。 这个类的视图层次是私人的,不能修改,但有一个例外。 您可以将自定义视图的cameraOverlayView属性,并使用该视图来显示其他信息或管理的互动拍照界面和代码之间。

所以它看起来像迫使风景模式不支持和鼓励,除非你有一个自定义替换默认控件这样做cameraOverlayView



Answer 2:

创建一个名为“CUIImagePickerController”从继承的UIImagePickerController类,重写下面的方法,现在用这个类!

@interface CUIImagePickerController : UIImagePickerController

@end

@implementation CUIImagePickerController
- (BOOL)shouldAutorotate {
    return NO;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orient {
    return (orient == UIInterfaceOrientationLandscapeLeft) | (orient == UIInterfaceOrientationLandscapeRight);
}
@end

问候,



Answer 3:

试试下面的实现方法:

- (BOOL)shouldAutorotate
{

return YES;
}

-(NSUInteger)supportedInterfaceOrientations

{
return UIInterfaceOrientationMaskLandscape;

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
  return UIInterfaceOrientationLandscapeRight;
}


文章来源: Force landscape orientation in UIImagePickerController