페이지

2010년 10월 17일 일요일

UINavigationBar에 Background image설정하기

UINavigationBar에 Background image를 설정하는 간단한 방법으로는

UIImage *backImage = [UIImage imageNamed:@"title-bar.png"];
UIImageView *backImageView = [[UIImageView alloc] initWithImage:backImage];
[self.navigationController.navigationBar insertSubview:backImageView atIndex:0];

와같이 0번 index에 이미지뷰를 서브뷰로 더하는 것이다.

하지만 이렇게 할 경우 다음 depth로 넘어가자 타이틀이 가려지는 현상이 발생했다.
검색을 해보니 다양한 문제가 발생하기도 했는데 이를 완연히 방지하기 위해서는
UINavigationBar에 카테고리를 더해

#import "UINavigationBar+BackgroundImage.h"


@implementation UINavigationBar (BackgroundImage)

- ( void )drawRect:( CGRect )rect
{
    [ [ UIImage imageNamed:@"title-bar.png" ] drawInRect:CGRectMake( 0, 0, self.frame.size.width, self.frame.size.height )];
}

@end

와같이 drawRect를 구현해주면 별도의 설정없이 이미지가 더해진다.

댓글 없음:

댓글 쓰기