12

私は iOS 開発は初めてで、最初のアプリを開発しています。(初心者の質問で申し訳ありません)

私のアプリは、アプリで使用する写真を撮るために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];

私のアプリはPortraitであるため、 UIImagePickerControllerをLandscape onlyにする必要があります。私が使用しようとすると:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

私のXcodeはこの行でエラーとして識別されるため、使用できないようです(おそらくXcodeのバージョンが原因で、わかりません)。よくわかりませんが、iOS 5.1用に開発している場合、iOS 6.0 用にも何かを実装する必要があるようですが、正しいですか?

このUIImagePickerControllerと、アプリ内のこのビュー コントローラーのみを横向きで動作させ、iOS 5.1 および 6 で動作させるために何が必要かを誰かが理解するのを手伝ってくれますか?

よろしく

4

3 に答える 3

1

UIImagePickerController から継承した「CUIImagePickerController」という名前のクラスを作成し、次のメソッドをオーバーライドして、このクラスを使用します。

@interface CUIImagePickerController : UIImagePickerController

@end

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

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

よろしく、

于 2013-01-31T05:07:39.103 に答える
-1

以下の方法を実装してみてください:

- (BOOL)shouldAutorotate
{

return YES;
}

-(NSUInteger)supportedInterfaceOrientations

{
return UIInterfaceOrientationMaskLandscape;

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
  return UIInterfaceOrientationLandscapeRight;
}
于 2013-01-31T04:44:43.660 に答える