2011-04-21 6 views
0

이 질문은 내 질문 문구를 이해하는 방법을 모르지만 내 생각에는 실망 스럽습니다.UITabBarController 자식 뷰 크기 조정

저는 항상 화면 상단에 2 개의 하위보기가있는 응용 프로그램에서 작업하고 있습니다 (상태 표시 줄을 포함하여 총 114 개의 픽셀 사용). 나머지 공간은 UITabBar로 가져오고 자식보기를 원합니다.

가장 가까운 것은 얻을 수 있었던 탭 뷰는 크기가 정확하지만 0,0에 위치하므로 영구적 인 하위 뷰 아래에 있습니다.

// Create the main toolbar 
toolbar = [[UIToolbar alloc] init]; 
[toolbar sizeToFit]; 
toolbar.frame = CGRectMake(0.0, 20, 768, 44); 

UILabel *textLabel = [[UILabel alloc] init]; 
textLabel.frame = CGRectMake(240, 20, 300, 40); 
textLabel.textAlignment = UITextAlignmentCenter; 
textLabel.backgroundColor = [UIColor clearColor]; 
textLabel.text = @"Character Name"; 
[self.window addSubview:textLabel]; 
[textLabel release]; 

... 

// Create the stats bar 
StatsViewController *statsView = [[StatsViewController alloc] init]; 
statsView.view.frame = CGRectMake(0.0, 64, 768, 50); 
[self.window addSubview:statsView.view]; 

// Create Tab Bar Controller and Tab View Controllers 
tabBarController = [[UITabBarController alloc] init]; 

... 

[self.window setRootViewController:tabBarController]; 
[tabBarController release]; 

[self.window addSubview:toolbar]; 
[self.window bringSubviewToFront:statsView.view]; 
[self.window bringSubviewToFront:textLabel]; 
[self.window makeKeyAndVisible]; 
return YES; 

답변

0

탭 표시 줄 컨트롤러 (또는 그 문제에 대한 모든 뷰 컨트롤러는) 항상 그것의 슈퍼 뷰의 전체 범위를 차지하도록 해당 뷰의 크기를 조정하려고합니다. 그래서 탭바 컨트롤러가 그렇게하지 않기를 원한다면 새로운 루트보기 컨트롤러가되는 또 다른 일반 뷰 컨트롤러를 만들 것입니다.

해당보기 컨트롤러의보기에서 statsView과 탭 막대 컨트롤러를위한 컨테이너 하위보기 2 개를 만듭니다. 이제 한 컨테이너보기에 탭 표시 줄 컨트롤러보기를 추가하고 StatsViewController보기를 다른 컨테이너보기에 추가합니다.

(참고 :. 내가 테스트하고 있지 않습니다)

+0

내가 이해가 잘 모르겠어요, 왜 오른쪽 컨테이너보기 (단지 UIView의 인스턴스 통계보기, 왜 그냥 하나의 ViewController를 포함하는 하위 뷰를 생성?) tabBarController 잡고 크기? – hokiewalrus

+0

새로운 'UIVIewController' 크기를 올바르게 만들고 프로그램 적으로 새로운 viewController의'viewDidLoad'에'UITabBarController'를 만들었습니다. 탭 표시 줄을 볼 수 있지만 자식보기가로드되지 않고 탭을 선택해도 프로그램이 중단되지 않습니다. 나는 아주 가깝다고 느낀다. – hokiewalrus

관련 문제