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의보기 프레임입니다.
관심과 노력에 감사드립니다.
감사합니다. 이미 해결책의 일부입니다. 이제 이미지 선택 도구를 종료 한 후 앱이 올바르게 표시됩니다.그러나 지금 새로운 문제가 있습니다 : 장치를 회전하면 상태 표시 줄이 올바른 위치 (위)로 점프하지만 나머지 응용 프로그램은 회전하지 않고 옆으로 유지됩니다 ... 문제도 해결 했습니까? –
내 응용 프로그램이 세로 전용이므로이 문제를 보지 못했습니다. 해결책을 찾으면 다른 사람들이 볼 수 있도록 여기에 다시 게시하십시오. – Firefly
전혀 작동하지 않습니다. – user2159978