기본적으로 제공하는 UITabbarcontroller에서 하단 탭바의 선택 색깔은 Blue 이다.
Blue 색을 바꾸기 위해서...는 다음과 같이 하면 된다.
// 각 탭바에 선택 되기전 이미지(menuOne), 선택되었을 때 이미지(menuOne_select)를 만들고,
// 각 이미지를 넣어주면 된다.
// 이미지를 수정 없이 넣으면 이미지가 상단으로 올라가므로 tabBarSelectedImageLocationMove
// 메소드를 통해서 수정 9.0f 정도 밑으로 내려주면~ 끝 ㅎ
UIImage *menuOne = [UIImage imageNamed:@"images/common/menu1.png"];
UIImage *menuOne_select = [UIImage imageNamed:@"images/common/menu1_on.png"];
[basicSubNavController.tabBarItem setTitle:@"아웃~ㅎ"];
[basicSubNavController.tabBarItem setImage:[self tabBarSelectedImageLocationMove:menuOne]];
[basicSubNavController.tabBarItem setSelectedImage:[self tabBarSelectedImageLocationMove:menuOne_select]];
[basicSubNavController.tabBarItem setTag:0];
// 이미지가 상단으로 이동 되므로 아래로 내려 주는 메소드
- (UIImage *)tabBarSelectedImageLocationMove:(UIImage *)_image
{
UIImage *itemImage;
CGSize itemImageSize = [_image size];
UIGraphicsBeginImageContext(itemImageSize);
CGContextSetInterpolationQuality(UIGraphicsGetCurrentContext(), kCGInterpolationHigh);
[_image drawInRect:CGRectMake(0.0f, 9.0f,
itemImageSize.width, itemImageSize.height)];
itemImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return itemImage;
}
==== 추가 사항 ====
원래 TabbarItem에는 setSelectedImage 라는 메소드는 없다.
그럼 어떻게??
UIBarExtend.h & UIBarExtend.m 파일을 만든다. (NSObject)
UIBarExtend.h
@interface UITabBar (ColorExtensions)
- (void)fixTabBarBackground;
@end
@interface UITabBarItem (Private)
@property(retain, nonatomic) UIImage *selectedImage;
@end
UIBarExtend.m
#import "UITabbar_Extension.h"
@implementation UITabBar (ColorExtensions)
// 이건.. 탭바 배경 바꾸는 소스 ㅎㅎㅎ
- (void)fixTabBarBackground
{
UIImage *img = [UIImage imageNamed:@"bg_foot.png"];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
[self addSubview:imgView];
[imgView release];
}
@end
진작 이렇게 할껄...ㅎ
괜히
http://stackoverflow.com/questions/2506290/how-to-change-uitabbar-selected-color
이거 보고 따라했다가.. 리젝 먹었음;;;