2012-10-24 2 views
5

tl; dr : 앱이 상태 표시 줄을 표시하면 사진을 찍는 동안 iPad를 돌릴 때 사용자 인터페이스 레이아웃이 깨집니다.회전 후 UIImagePickerController의 상태 표시 줄 및 레이아웃 문제

UIImagePickerController을 통해 사진을 찍어야하는 상태 표시 줄을 보여주는 앱이 있습니다.

내가 엑스 코드와, 아이 패드 3 아이폰 OS 6이 실행 해요 4.51

내가주의 첫 번째 문제였습니다 나는 호출하기 전에

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 

를 통해 상태 표시 줄을 숨길하지 않은 경우

[self presentViewController:imagePicker animated:YES completion:nil]; 

는 그 다음 UIImagePickerController이 화면에 제대로 표시되지 않습니다. 상태 표시 줄의 공간은 여전히 ​​예약되지만 (시간이나 배터리 정보 등은 표시되지 않음) 화면 맨 아래의 컨트롤이 부분적으로 화면 외부에 표시 될 수 있습니다.

그래서, 나는 UIImagePickerController 첫 번째 문제가 해결되었다 제시하기 전에 라인

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 

을 추가했다.

이제 두 번째 문제가 발생합니다 (첫 번째 문제의 해결로 인해 발생). UIImagePickerController을 가져 오면 iPad를 회전하고 닫으십시오 ("취소"또는 "사용"은 중요하지 않음). 처리기 (imagePickerControllerDidCancel 또는 imagePickerController:didFinishPickingMediaWithInfo: 중 하나가 호출되어 상태 표시 줄을 다시 표시합니다.

을 통해
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 

문제는 상태 표시 줄이 사실에 표시되는 지금,하지만 응용 프로그램의 나머지 부분은 다시 화면에 있는지 모르고. (나는 내 ​​"MainViewController"에 가지고있는 UIToolbar 것 같다 부분적이다 재미있는 점은 iPad를 다른 방향으로 회전 시키면 애니메이션이 끝난 후 다시 제대로 표시된다는 것입니다.

아무에게도 th를 해결하는 방법에 대한 조언을 줄 수 있습니까? 문제 야? (현재 내 최선의 해결 방법은 처음으로 누군가가 사진을 찍은 후에 상태 표시 줄을 숨겨 두는 것이지만, 그 방법은 차선책입니다.) 어쩌면 첫 번째 문제에 대한 더 나은 해결책 일 수도 있고 두 가지 문제를 해결할 수있는 방법 일 수도 있습니다.

추가 정보 : UIImagePickerController이 활성화되어있는 동안 iPad를 가로 방향으로 회전 한 후, 이것은 내 MainViewController의보기 프레임의 프레임입니다 : {{0, 0}, {1024, 768} (즉, 문제). {{0, 0}, {1024, 748}} (항상 문제가없는 경우입니다) UIImagePickerController이 닫히면 iPad가 가로 방향으로 iPad를 항상 가지고 있습니다.이 부분은 MainViewController의보기 프레임입니다.

관심과 노력에 감사드립니다.

답변

3

카메라에서 이미지를 가져 오는 이미지 선택 도구를 표시 할 때 iPhone에서 동일한 문제가 발생했습니다. 내가 찾은 해결책은 이미지 선택 도구를 팝업 한 뷰가 다시 나타날 때 상태 표시 줄을 호출하라는 것이 었습니다. 예 :

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide]; 
} 
+0

감사합니다. 이미 해결책의 일부입니다. 이제 이미지 선택 도구를 종료 한 후 앱이 올바르게 표시됩니다.그러나 지금 새로운 문제가 있습니다 : 장치를 회전하면 상태 표시 줄이 올바른 위치 (위)로 점프하지만 나머지 응용 프로그램은 회전하지 않고 옆으로 유지됩니다 ... 문제도 해결 했습니까? –

+0

내 응용 프로그램이 세로 전용이므로이 문제를 보지 못했습니다. 해결책을 찾으면 다른 사람들이 볼 수 있도록 여기에 다시 게시하십시오. – Firefly

+0

전혀 작동하지 않습니다. – user2159978