2011-02-14 2 views
0

에보기 추가하기, 내 응용 프로그램의 tabBarController에 작은 버튼을 추가하고 있습니다. didCinishLaunchingWithOptions 메소드가 응용 프로그램 대리인입니다. 아이디어는 이것이 스크린 상에 보여지는 viewcontroller의 상단에 보여 질 때 보여지는 것입니다. 사용자는보기 사이를 이동할 수 있으며이 단추는 계속 표시됩니다. tabBarcontroller의sdk 4.2를 사용하여 TabBarcontroller

NSLog(@"tabBarController bounds: %@",NSStringFromCGRect(self.tabBarController.view.bounds)); 
self.Btn = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; 
self.Btn.frame = CGRectMake(80, 20, 160, 20); 
self.Btn.hidden = YES; 
[self.Btn addTarget:self action:@selector(launch:) forControlEvents:UIControlEventTouchUpInside]; 
[self.Btn setBackgroundImage:[UIImage imageNamed:@"launch.png"] forState:UIControlStateNormal]; 
[self.tabBarController.view addSubview:self.Btn]; 

경계 NSLog 하여 인쇄로는 {{0, 0}, {320, 480}}

는 I 버튼 CGRectMake (80, 20, 160, 20의 프레임을); 따라서 상태 표시 줄에 을 허용하기 위해 20을 오프셋했습니다. 이것은 대부분의 시간 동안 작동하는데, 버튼을 볼 때 보이지 않는 viewcontroller 상단의 오른쪽에 이 표시됩니다. 때때로 tabBarcontroller의 경계가 0,0,320,460으로 변경된 것처럼 버튼이 아래쪽으로 이동합니다. 이제 버튼이 새 경계에 상대적이므로 화면 상단에서 20 픽셀 아래로 추가됩니다.

일단 이동되면 작업 전환기에서 앱을 종료하고 다시 시작할 때까지 항상 이와 같이 유지됩니다. 아무도이 문제를 일으키고 해결 방법을 알 수 없습니다. 감사합니다

답변

0

탭 표시 줄 컨트롤러보기에 단추를 추가 할 때 자체 자동 마스크를 UIViewAutoresizingFlexibleTopMargin으로 설정하십시오. 그러면 뷰의 맨 아래에 "고정"되어 높이 변화로 인해 뷰가 아래로 이동하지 못하게됩니다.

0

몇 가지 이유로 인해 탭 표시 줄 컨트롤러의보기 범위가 변경됩니다. 이 문제가 귀하의 경우에 발생한 이유를 정확히 알지는 못하지만, 사용자가 전화를 걸고 화면에 통화 상태 표시 줄이 표시된 경우와 같이 예상되는 동작입니다.

단추의 자동 크기 조정 옵션을 조정하므로 탭 표시 줄 컨트롤러보기의 경계가 변경되는 경우에도 단추는 그대로 유지됩니다. 아래쪽 여백과 단추의 내용 높이를 수정하고 유연한 위쪽 여백을 지정하십시오.

IB에서이 작업을 수행하거나 프로그래밍 방식으로 autoresizingMask 속성을 설정할 수 있습니다.

관련 문제