2013-03-14 2 views
0

면책 조항 : 나는이 시나리오에서 디자이너 일 뿐이며 iOS 개발에 대한 정확한 정보를 알고 있으므로 잘못된 질문을 할 가능성이 큽니다.맞춤형 UINavigationBar

면책 조항 부인 : 저는 숙련 된 PHP 및 JS 프로그래머이므로 예술/개발 감각이 완전히 사라지지 않습니다.

이제 우리가 재생하려고하는 디자인에 헤더 막대가 필요합니다. 현재 UINavigationBar입니다. 그러나이 요소는 충분한 사용자 정의를 허용하지 않습니다.

  • 막대의 높이는 110 픽셀 (망막)이어야합니다.
  • 광택, 테두리 또는 배경이 없어야합니다. 전체 화면은 동일한 움직이지 않는 배경 (이미지)을 가져야합니다.
  • 바는 그 아래 내용이 스크롤 될 때 그림자 만 있으면됩니다 (이미지이기도합니다. 내부 그림자 효과는 충분하지 않습니다). 즉, 그림자 이미지는 "일부 콘텐츠가 여기에있다"는 표시입니다. Galaxy 시대에서 올바르게 기억한다면 Android 사용자에게는 친숙한 행동입니다.

여기에 디자인 모형의 일부를 첨부했습니다.

Design mockup showcasing the bar behavior

란 이러한 효과 달성하기 위해 최소 저항의 경로 (기본 UINavigationBar 가능하다면이 있지만 땀이 아니라면)?

+0

IDE 자체에 대한 질문에만 [tag : xcode] 태그를 사용하십시오. 감사! – Undo

답변

1

가장 간단한 방법은 UINavigationBar을 상속받은 클래스를 추가하고 drawRect 메서드를 구현하여 컨텍스트에서 그림자가있는 탐색 모음 이미지를 그릴 수 있습니다.

@interface MynavBar:UINavigationBar 
@end 

@implementation MynavBar 

- (void)drawRect:(CGRect)rect 
{ 
UIImage *navBarImg=[UIImage imageNamed:@"navBar.png"]; 
[navBarImg drawRect:rect]; 
[super drawRect:rect]; 
} 
@end 

이 클래스를 IB의 탐색 모음에 대한 클래스 이름으로 사용하십시오.

+0

필자가 이해할 수있는 한, 헤더 바에 이미지를 배치하는 것처럼 보입니다. 이 접근 방식은 콘텐츠의 스크롤시 앱의 배경 (파란색 대각선 줄무늬)이 스크롤되지 않아야한다는 이상으로 작동합니까? –

+0

이것은 작동합니다!, 그것은 내 응용 프로그램에서 사용자 정의 탐색 바를 사용하는 곳에서 잘 작동합니다. 이 뷰에 그려진 고정 된 이미지는 @emphram stvanger를 움직이지 않을 것입니다. – kaar3k

+0

@ kaar3k'navBar.png'의 높이가 110 픽셀이라면 어떻게 될까요? – limon

0

글쎄, 당신의 경우에, 나는 UINavigationBar을 사용할 수 없다고 생각합니다. 기본 navigationBar 높이는 읽기 전용이므로 프로그래밍 방식으로 변경할 수 없습니다. 한 번 더 큰 탐색 모음을 만들려고했지만 실제로 작동하지 않습니다. 필요한 경우 기본 뒤로 단추 위치를 제어 할 수 없기 때문입니다. 네비게이션 바를 필요로하지 않는다면 배경 이미지가있는 커스텀 뷰를 사용해야한다고 생각합니다. 그래서 프레임을 원하는대로 설정할 수 있습니다.