본문 바로가기

프로그래밍/iOS

[iOS] 아이패드, 아이폰 카메라 UI 고정하기

UIImagePickerController에서

  picker.sourceType=UIImagePickerControllerSourceTypeCamera;를 호출하면 

카메라 촬영앱이 뜬다.

이 때 아이폰이나 패드를 기울이게 되면

아이패드의 경우 촬영버튼, 취소버튼, 전면 카메라전환 버튼이 같이 들어있는 바가 회전하고,

아이폰의 경우 화면  촬영버튼 안에 카메라 모양과 전면 카메라 전환버튼이 회전한다.

이를 막기 위한 방법

 

-아이패드의 경우


1. AppDelegate.m

 

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

{

    // only use LandscapeRight

    return UIInterfaceOrientationMaskLandscapeRight;

}

 

2. Project/Targets General - Deployment Info - Device Orientation

 

Portrait, Landscape Right 체크

 

3. ViewController.m

 

- (NSUInteger)supportedInterfaceOrientations

{

    return UIInterfaceOrientationMaskLandscapeRight;

}

 

4. UIImagePickerViewController 상속한 class


- (BOOL)shouldAutorotate

{

    // 카메라 촬영  화면 rotate 막아줌

    return NO;

 

}

 

-아이폰의 경우


-(void) removeAllNotificationFromView : (UIView *)view

{

    [[NSNotificationCenter defaultCenter]removeObserver:view];

    for(UIView *subview in [view subviews])

        [self removeAllNotificationFromView:subview];

 

}

위의 함수를 추가해 준 뒤

[self presentViewController:picker animated:NO completion:nil];//카메라 실행

 

[self removeAllNotificationFromView:picker.view];//화면 회전 알림 끔

카메라 실행 후 알림을 끄면 고정이 된다.