本文出自 “HELP” 博客,请务必保留此出处http://lulala.blog.51cto.com/780501/659098
修改tabbar背景图片
方法1:
//设置背景颜色,注意tabbar高度设置为49
CGRect frame = CGRectMake(0, 0, self.view.bounds.size.width, 49);
UIView *view = [[UIView alloc] initWithFrame:frame];
UIColor *color = [[UIColor alloc] initWithRed:255.0
green:255.0
blue:255.0
alpha:1.0];
[view setBackgroundColor:color];
[color release];
[[[self defaultTabBarController] tabBar] insertSubview:view atIndex:0];
[view release];
CGRect frame = CGRectMake(0, 0, self.view.bounds.size.width, 49);
UIView *view = [[UIView alloc] initWithFrame:frame];
UIColor *color = [[UIColor alloc] initWithRed:255.0
green:255.0
blue:255.0
alpha:1.0];
[view setBackgroundColor:color];
[color release];
[[[self defaultTabBarController] tabBar] insertSubview:view atIndex:0];
[view release];
方法2:
//设置图片为背景,注意tabbar高度设置为49
UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"backgroundImage.png"]];
img.frame = CGRectMake(0, 0,
self.defaultTabBarController.tabBar.frame.size.width, self.defaultTabBarController.tabBar.frame.size.height);
img.contentMode = UIViewContentModeScaleToFill;
[[[self defaultTabBarController] tabBar] insertSubview:img atIndex:0];
[img release];
UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"backgroundImage.png"]];
img.frame = CGRectMake(0, 0,
self.defaultTabBarController.tabBar.frame.size.width, self.defaultTabBarController.tabBar.frame.size.height);
img.contentMode = UIViewContentModeScaleToFill;
[[[self defaultTabBarController] tabBar] insertSubview:img atIndex:0];
[img release];
修改tabbar图片及背景图片
MyTabBarItem.h
@
interface MyTabBarItem : UITabBarItem {
@ private
UIImageView *iconImageView;
UIImage *selectedIconImage, *iconImage;
}
@property (nonatomic, retain) UIImage *selectedIconImage, *iconImage;
- ( void)setSelected:(BOOL)bo;
- ( void)setIconImage:(UIImage *)image;
- ( void)setSelectedIconImage:(UIImage *)image;
@end
@ private
UIImageView *iconImageView;
UIImage *selectedIconImage, *iconImage;
}
@property (nonatomic, retain) UIImage *selectedIconImage, *iconImage;
- ( void)setSelected:(BOOL)bo;
- ( void)setIconImage:(UIImage *)image;
- ( void)setSelectedIconImage:(UIImage *)image;
@end
MyTabBarItem.m
#import
"MyTabBarItem.h"
@implementation MyTabBarItem
@synthesize selectedIconImage, iconImage;
- ( void)setSelected:(BOOL)bo
{
UIView *_view = [self valueForKey: @"_view"];
if( bo )
{
iconImageView.frame = CGRectMake(0, 0, selectedIconImage.size.width/2, selectedIconImage.size.height/2);
iconImageView.center = CGPointMake(_view.frame.size.width/2, _view.frame.size.height/2);
iconImageView.image = selectedIconImage;
}
else
{
iconImageView.frame = CGRectMake(0, 0, iconImage.size.width/2, iconImage.size.height/2);
iconImageView.center = CGPointMake(_view.frame.size.width/2, _view.frame.size.height/2);
iconImageView.image = iconImage;
}
}
- ( void)awakeFromNib
{
[super awakeFromNib];
iconImageView = [[[UIImageView alloc] init] autorelease];
[[self valueForKey: @"_view"] addSubview:iconImageView];
}
- ( void)dealloc {
[selectedIconImage release];
[iconImage release];
[super dealloc];
}
@end
@implementation MyTabBarItem
@synthesize selectedIconImage, iconImage;
- ( void)setSelected:(BOOL)bo
{
UIView *_view = [self valueForKey: @"_view"];
if( bo )
{
iconImageView.frame = CGRectMake(0, 0, selectedIconImage.size.width/2, selectedIconImage.size.height/2);
iconImageView.center = CGPointMake(_view.frame.size.width/2, _view.frame.size.height/2);
iconImageView.image = selectedIconImage;
}
else
{
iconImageView.frame = CGRectMake(0, 0, iconImage.size.width/2, iconImage.size.height/2);
iconImageView.center = CGPointMake(_view.frame.size.width/2, _view.frame.size.height/2);
iconImageView.image = iconImage;
}
}
- ( void)awakeFromNib
{
[super awakeFromNib];
iconImageView = [[[UIImageView alloc] init] autorelease];
[[self valueForKey: @"_view"] addSubview:iconImageView];
}
- ( void)dealloc {
[selectedIconImage release];
[iconImage release];
[super dealloc];
}
@end
- (void)viewDidLoad
//add pictures of tab bar
NSArray *array = self.defaultTabBarController.tabBar.items;
[[array objectAtIndex:0] setIconImage:[UIImage imageNamed: @"btn_tab_recipes.png"]];
[[array objectAtIndex:0] setSelectedIconImage:[UIImage imageNamed: @"btn_tab_recipes_selected.png"]];
[[array objectAtIndex:0] setSelected:YES];
NSArray *array = self.defaultTabBarController.tabBar.items;
[[array objectAtIndex:0] setIconImage:[UIImage imageNamed: @"btn_tab_recipes.png"]];
[[array objectAtIndex:0] setSelectedIconImage:[UIImage imageNamed: @"btn_tab_recipes_selected.png"]];
[[array objectAtIndex:0] setSelected:YES];
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
//set selected picture
NSArray *array = self.defaultTabBarController.tabBar.items;
for (MyTabBarItem *item in array) {
[item setSelected:NO];
}
[[array objectAtIndex:defaultTabBarController.selectedIndex] setSelected:YES];
NSArray *array = self.defaultTabBarController.tabBar.items;
for (MyTabBarItem *item in array) {
[item setSelected:NO];
}
[[array objectAtIndex:defaultTabBarController.selectedIndex] setSelected:YES];