2014-12-28 4 views
0

나는 5사용자 정의 메뉴 바 6

UINavigationBar *myBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)]; 
[self.view addSubview:myBar]; 

이 아이폰 6에, 그것의 일부는 물론 그 때문에 차단되면 아이폰에 최적화 된 사용자 정의 탭 표시 줄이 320 픽셀로만 이동합니다.

어떻게 수정합니까? 어떤 아이폰이 실행되고 있는지 확인한 다음 픽셀 지정 코드를 실행하는 방법이 있습니까? 나중에이 navbar에 배경 이미지를 넣을 계획입니다.

+0

너비를 320 대신 화면 너비로 설정하십시오. http://stackoverflow.com/a/5678199/2274694 –

답변

1

일반적으로 이와 같은 치수를 하드 코딩하는 것은 바람직하지 않습니다. 회전하거나 원래 iPhone 화면과 다른 크기의 화면에서 본 경우이 동작이 중단됩니다.

이러한 컨트롤 중 많은 것은 사용자가 유용하게 사용할 수있는 기본 크기를 가지고 있습니다. 대신 그것을 프레임을 나눠의, 그냥 당신이 제공하는 프레임을 수정 고려해

UINavigationBar *myBar = [[UINavigationBar alloc] init]; 
CGRect navBarFrame = myBar.frame; 
navBarFrame.size.height // returns the right size for the current OS 
navBarFrame.size.width = self.view.frame.size.width; 
myBar.frame = navBarFrame; 
당신이 부모에이 컨트롤을 포함 할 때 방어 코딩의이 유형을 포함하여 응용 프로그램이 제대로 많은 조건에서 배치 유지에 도움이된다

보기 컨트롤러를 사용하거나 내일에는 큰 화면의 iOS 기기에서 볼 수 있습니다.

이 모든 내용은 UIToolbar을 원하지 않으십니까? 일반적으로 자신의 UINavigationBar을 만들지 않습니다.이 클래스는 단지 UINavigationController에서 사용됩니다.

+0

6 플러스가 변경되면 navbar 높이의 동적 크기 조정을 어떻게 처리합니까? – ian

+0

보기 컨트롤러 메소드'willTransitionToTraitCollection : withTransitionCoordinator'를 처리하고 특성을 점검 할 수 있습니다. 탐색 모음은 일반적으로 _compact_ height 특성 컬렉션에서 작은 크기입니다. –

0
UINavigationBar *myBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 50)]; 
[self.view addSubview:myBar]; 

이 도움이 될 수 있습니다.