2010-12-14 4 views
0

좋아요. 개발중인 iPad 응용 프로그램에서 흥미로운 문제가 있습니다.출시시에만 다른 iPad 레이아웃

앱이 세로 모드에서 실행되면 레이아웃이 예상대로 작동합니다. iPad를 회전 시키면 회전이 잘됩니다.

가로 모드에서 응용 프로그램을 시작할 때 추가 공백이 나타나고 레이아웃이 예상대로 작동하지 않습니다. 그러나 응용 프로그램을 세로 방향으로 회전 시키면 회전이 잘됩니다. 다시 가로로 돌릴 때도 괜찮습니다.

이 문제의 원인은 무엇입니까? 문제의 뷰 컨트롤러는 UINavigationController (헤더에 추가해야 함)가 포함 된 뷰 컨트롤러입니다. 나는 그것이 UINavigationController를 통해 무언가인지 궁금해.

답변

0

그래서 내 응용 프로그램에서 이상한 무엇 탭 컨트롤러가 펑키 인 된보기로 다시 탭을 전환 할 때 레이아웃이 정확이 될 것입니다. 그래서, 메인 윈도우의 makeKeyAndVisible 전에 탭 사이를 전환하기 위해 해킹을 추가했습니다.

나는 당신의 제안 WrightsCS를 시도했다. 그것이 작동하지 않는 진짜 이유는 페이지의 하위보기에서 UINavigationController의 뷰를로드하고 있기 때문에 실제로 엉망이 된 레이아웃을 제어하지 못했기 때문입니다. 네비게이션 컨트롤러의 상단 막대가 있어야했던 것보다 약간 낮게로드되었습니다.

0

시작시 인물 모드가 예상됩니다. 뷰 컨트롤러에서 방향을 찾고 해당 뷰를로드해야한다는 것을 알 필요가 있습니다. 좋아

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if(((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
     (interfaceOrientation == UIInterfaceOrientationLandscapeRight))){ 

     self.view = landscape; 

    }else if(((interfaceOrientation == UIInterfaceOrientationPortrait) || 
       (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))){ 

     self.view = portrait; 
    } 

    return YES; 
} 
+0

오직 1 개의 ViewController와 뷰입니다. 가로와 세로 사이를 전환 할 때 다른보기를로드하지 않습니다. – Min

+0

그런 다음로드시 방향을 확인하고 그에 따라 대상 프레임을 조정해야합니다. 더 간단한 방법은 1 개의 컨트롤러에 2 개의 뷰 (IB로 설정)를 갖는 것입니다. 가로보기와 세로보기라는 1 개의보기를 선택한 다음 내 대답에 추가 한 코드를 사용합니다. 여러 프로젝트에서 저처럼 매력적이었습니다. – WrightsCS

+0

나는 이것을 줄 것이다. – Min

관련 문제