我是新的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的作品?
问候
具体根据UIImagePickerController类参考
重要提示 : UIImagePickerController
类只支持肖像模式。 这个类是打算按原样使用,不支持子类。 这个类的视图层次是私人的,不能修改,但有一个例外。 您可以将自定义视图的cameraOverlayView属性,并使用该视图来显示其他信息或管理的互动拍照界面和代码之间。
所以它看起来像迫使风景模式不支持和鼓励,除非你有一个自定义替换默认控件这样做cameraOverlayView
。
创建一个名为“CUIImagePickerController”从继承的UIImagePickerController类,重写下面的方法,现在用这个类!
@interface CUIImagePickerController : UIImagePickerController
@end
@implementation CUIImagePickerController
- (BOOL)shouldAutorotate {
return NO;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orient {
return (orient == UIInterfaceOrientationLandscapeLeft) | (orient == UIInterfaceOrientationLandscapeRight);
}
@end
问候,
试试下面的实现方法:
- (BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeRight;
}