2011-11-09 4 views
10

나는 숨겨진 상태 표시 줄로 시작하고, 시작 화면을 표시하고, 표시 할 콘텐츠가로드 될 때 상태 표시 줄을 다시 전환하려고하는 iPhone 응용 프로그램이 있습니다 [[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES]을 사용하여 인터넷을 통해로드해야하므로 몇 번 걸립니다. 상태 표시 줄을 표시하고 숨긴 후에 내용보기의 크기를 조정하고 올바르게 배치하려고합니다. 내 응용 프로그램을 모든 장치 방향 (아마 애플 가이드 라인에 지정된 topdown 방향 제외)에서 실행할 수 있어야합니다.iPhone 상태 표시 줄이 보이거나 숨겨진 후 콘텐츠 크기 조정

제 문제는 응용 프로그램을 표시 할 수 없기 때문입니다. 자동 회전 후 20pt 빈 공간이 표시되거나 상태 표시 줄 아래에 숨겨집니다.

이 문제를 처리하는 적절한 방법은 무엇이 있습니까?

아직 테스트하지는 않았지만 수신 통화 표시 줄에서 같은 문제가 발생할 것으로 생각됩니다.

편집는 :

더 나은 문제가 무엇인지 설명하려고합니다. 응용 프로그램이 시작되면 상태 표시 줄이 숨겨지고 창 좌표계에서 창 표시 영역의 위쪽 모퉁이가 창 좌표계에서 0,0이됩니다. 그런 다음 상태 표시 줄을 슬라이드합니다. 창 크기가 변경되지 않으므로 상태 표시 줄 뒤에 0,0 포인트가 숨겨집니다. 윈도우의 보이는 영역의 왼쪽 상단은 0,20이고 나는이 좌표로 내 뷰를 이동해야합니다 (그리고 320 * 460으로 적절하게 크기를 조정해야합니다). 그러나 장치를 회전 한 다음 다시 원래 위치로 돌아 가면 보이는 창 영역의 왼쪽 위 좌표가 다시 0,0이됩니다. 이제는 320 * 480으로 크기가 조정됩니다.

해결 방법은 플래그를 지정하는 것입니다 전화가 이전에 회전되었는지 여부는 모르지만 다른 위치로 회전 한 다음 다시 돌아갈 때 창 좌표가 변경되지 않는 방법이 있습니까?

+2

유무의 이름입니다 보기에 자동 크기 조정 마스크를 설정 했습니까? – titaniumdecoy

답변

1

예, 동일한 문제가 전화 표시 줄에 표시됩니다. 또는 오디오 녹음 막대는 동일한 작업을 수행합니다. (보이스 메모 앱 레코딩을 시작하고 앱에 돌아와 추가 막대를 처리하는 방법을 테스트하는 것이 더 쉽고 저렴할 수 있습니다.)

일반적으로보기에 자동 크기 조정 마스크를 설정하면 일반적으로 상황이 조정됩니다.

XIB에서 UI를 작성하는 경우 막대가 바뀌거나 장치 또는 시뮬레이터가 회전 할 때보기의 크기가 올바르게 변경 될 때까지 설정을 사용하여 재생할 수 있습니다.

포함 된 하위 뷰에 대한 마스크 설정도 중요합니다.

0

@ walt의 답변은 실제로 작동합니까? 나는 모든보기 컨트롤러의보기 속성에이 플래그를 추가하려고했지만 거기에 행운이 없으면 sth가 누락 되었습니까?

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

This solution 내 문제는 해결되었지만보기에는 좋지 않습니다. 보기 컨트롤러보기 프레임의 크기를 수동으로 조정해야합니다.

0

이 문제

그냥보기 수정해야합니다 :

[self.view setFrame: [self.view bounds]]; 

[self.view setFrame: [self.view bounds]]; 
[self.theScroller setFrame: [self.view bounds]]; 

내부의 스크롤 볼 수있는 뷰를 "theScroller 내있는 ScrollView

관련 문제