2012-10-19 4 views
1

UITabBarUINavigationBar을 사용하는 앱이 있습니다. 내 배경 이미지가 들어있는 UIImageView을 만든 다음 서브 뷰로 UIImageView을 내 self.view에 추가합니다. 이로 인해 배경이 세로로 "찌그러져"보입니다. 배경 이미지는 NavBar의 아래쪽에서 시작하여 TabBar 뒤에서 실행됩니다. 배경의 실제 크기를 유지하는 방법에 대한 어떤 아이디어가 크게 감상 할 수iOS 배경 이미지 Navbar에 의해 휩싸여졌습니다

UIImageView* backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]]; 
    [backgroundView setFrame:CGRectMake(0, 0, 320, 480)]; 
    [self.view addSubview:backgroundView]; 

:

는 여기에 내가 배경을 추가 사용하고 코드입니다.

+0

iPhone 5 스토리 보드에 제작 했습니까? –

+0

컨테이너 뷰에 하위 뷰의 크기가 자동으로 조정되는 속성이 있습니까? 그게 문제가 될 수 있습니다 ... –

답변

2

먼저 iPhone/iPod 5보다 작은 숫자에 UINavigationBar이있는 경우 사용할 480 포인트의 높이가 없습니다. 실제 크기를 얻으려면 self.view.frame.size.height을 사용해야합니다. 실제로 프레임을 뷰 경계로 설정해야합니다.

[backgroundView setFrame:self.view.bounds]; 

둘째, 당신은 UIImageViewcontentMode 속성을 설정해야합니다.

[backgroundView setContentMode:UIViewContentModeScaleAspectFill]; //Set UIViewContentModeScaleAspectFit if you want to show the full image with the potential of a letterbox 

그러면 문제가 해결됩니다.

0

나는 당신이 무엇을 요구하는지 잘 모르겠습니다. 예, 탭 표시 줄 컨트롤러 또는 탐색 컨트롤러에 속한보기의 크기가 나머지 화면 공간에 맞게 조정되지만 다른 UI 요소에서 차지하는 공간을 고려한 후 이미지보기가 얼마나 남았는지 정확히 알 수 있습니다.

상태 표시 줄 : 320x20 (세로), 480x20 (가로) 탐색 모음 : 320x44 (세로), 480x34 (가로) 탭 모음 : 320x49 (세로), 480x49 (가로)

세로 : 320 X 367 Landspace : 480 X 217

그래서 기본적으로, 당신은 당신의 이미지 뷰에 대한 다음과 같은 가능한 공간이이러한 치수를 염두에두고 Default.png를 디자인하십시오. 솔직히, 첫 화면을 Default.png에 매치시키는 가장 쉬운 방법은 iOS 시뮬레이터의 스크린 샷을 찍는 것입니다.