2011-10-26 2 views
1

iOS 앱에서 HUD로 사용되는 하위 뷰를 만들었습니다. 이 앱은 세로 및 가로 방향 표시를 지원합니다.서브 뷰의 방향이 올바르지 않습니다.

모드가 가로 모드 인 경우에도 하위보기가 세로 모드로 표시되는 경우가 있습니다. 하위 뷰는이 선으로 추가됩니다

self.infoHUDViewController = [[[InfoHUDViewController alloc] initWithNibName:@"InfoHUD" bundle:nil] autorelease]; 
[self.view addSubview:self.infoHUDViewController.view]; 

그래서 그것은 아주 잘 서브 뷰가 viewDidLoad 방법에 추가되는 경우 작동합니다. 그러나보기가 단추 누르기에 응답하는 IBAction 메서드에 추가되면 가로 모드에서 작동하지 않습니다. 하위보기는 세로 모드 (90 ° 회전 된 것처럼 보이고 화면 너비의 절반 만 채우고 화면 경계를 넘어서 확장 된 것처럼 보임)처럼 나타납니다.

정말 이상한 점 : 하위보기의보기 컨트롤러의 init 메서드에서 표시 방향이 가로로 올바르게 설정되었습니다. 내가 여기서 뭔가를 놓치고 있니?

답변

2

이 문제에 대한 해결책을 발견했습니다.

는 I는 viewDidLoad 방법

if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) { 
    self.view.frame = CGRectMake(0.0f, 0.0f, 480.0f, 320.0f); 
} else { 
    self.view.frame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f); 
} 

첨가. 이제는 모든 상황에서 예외로 작동합니다.

+0

당신은 iPhone 5와 6을 포함하여 미래의 장치를위한 좋은 생각이 아닌 화면 크기를 하드 코드했습니다. –

+0

사실 ... 그러나이 답변은 오래 전부터 작성되었습니다. 자, 프레임 크기를 더 이상 하드 코딩하지 않겠습니다. – spa

관련 문제