ios 如何使用故事板通过自定义图像设置iphone标签栏图标
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13988162/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
how to set iphone tab bar icon by custom images using story board
提问by MohanRaj S
I am newbie to iphone development,I need to put a custom image icon in the tab bar .But it showing only the default colour(Black&blue) .Help me to overcome from this bug friends...?
我是 iphone 开发的新手,我需要在标签栏中放置一个自定义图像图标。但它只显示默认颜色(黑色和蓝色)。帮助我克服这个错误的朋友......?
回答by junaidsidhu
add the Images in application,
在应用程序中添加图像,
and See attached Image
并见附件图片
回答by CRDave
Use this code in viewDidLoad
在 viewDidLoad 中使用此代码
UIImage *selectedImage0 = [UIImage imageNamed:@"selected.png"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"unselected.png"];
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
回答by Stephani Alves
You can use this code snippet for ios7:
您可以将此代码片段用于 ios7:
UIImage *iconBoxOffice = [UIImage imageNamed:@"box-office.png"];
UIImage *selectedIconBoxOffice = [UIImage imageNamed:@"selected-box-office.png"];
UIImage *iconDvds = [UIImage imageNamed:@"dvds.png"];
UIImage *selectedIconDvds = [UIImage imageNamed:@"dvds.png"];
UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
[item0 initWithTitle:@"Box Office" image:iconBoxOffice selectedImage:selectedIconBoxOffice];
[item1 initWithTitle:@"Dvds" image:iconDvds selectedImage:selectedIconDvds];
You can keep adding more items if you have more tabs. *don't forget to add the images to your project *this is done programmatically, not using storyboards
如果您有更多选项卡,您可以继续添加更多项目。*不要忘记将图像添加到您的项目中 *这是以编程方式完成的,而不是使用故事板
回答by thavasidurai
Use below code in AppDelegate
在 AppDelegate 中使用以下代码
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIViewController *viewController1 = [[ViewFirstViewController alloc] init];
UIViewController *viewController2 = [[ViewSecondViewController alloc] init];
UIViewController *viewController3 = [[ViewThirdViewController alloc] init];
UIViewController *viewController4 = [[ViewFourthViewController alloc] init];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2,viewController3,viewController4, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
imgTab = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,320.0,50)];
self.tabBarController.tabBar.tag=10;
[self.tabBarController.tabBar addSubview:imgTab];
self.tabBarController.delegate = self;
imghome=[[UIImageView alloc]initWithFrame:CGRectMake(0.0,00.0,80.0,50.0)];
imghome.image=[UIImage imageNamed:@"dressup_active.png"];
[imgTab addSubview:imghome];
imgQuiz=[[UIImageView alloc]initWithFrame:CGRectMake(80.0,00.0,81.0,50.0)];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree.png"];
[imgTab addSubview:imgQuiz];
imgtTW=[[UIImageView alloc]initWithFrame:CGRectMake(161.0,00.0,80.0,50.0)];
imgtTW.image=[UIImage imageNamed:@"greetings.png"];
[imgTab addSubview:imgtTW];
imgGuest=[[UIImageView alloc]initWithFrame:CGRectMake(241.0,00.0,80.0,50.0)];
imgGuest.image=[UIImage imageNamed:@"quotes_tab.png"];
[imgTab addSubview:imgGuest];
}
Tabbar Controller delegate method
Tabbar Controller 委托方法
- (void)tabBarController:(UITabBarController *)tabBarControllers didSelectViewController:(UIViewController *)viewController
{
NSLog(@"%i",tabBarControllers.selectedIndex);
if (tabBarControllers.selectedIndex == 0)
{
imghome.image=[UIImage imageNamed:@"dressup_active.png"];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree.png"];
imgtTW.image=[UIImage imageNamed:@"greetings.png"];
imgGuest.image=[UIImage imageNamed:@"quotes_tab.png"];
}
else if (tabBarControllers.selectedIndex == 1)
{
imghome.image=[UIImage imageNamed:@"dressup.png"];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree_active.png"];
imgtTW.image=[UIImage imageNamed:@"greetings.png"];
imgGuest.image=[UIImage imageNamed:@"quotes_tab.png"];
}
else if (tabBarControllers.selectedIndex == 2)
{
imghome.image=[UIImage imageNamed:@"dressup.png"];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree.png"];
imgtTW.image=[UIImage imageNamed:@"greetings_active.png"];
imgGuest.image=[UIImage imageNamed:@"quotes_tab.png"];
}
else if (tabBarControllers.selectedIndex == 3)
{
imghome.image=[UIImage imageNamed:@"dressup.png"];
imgQuiz.image=[UIImage imageNamed:@"x-mas_tree.png"];
imgtTW.image=[UIImage imageNamed:@"greetings.png"];
imgGuest.image=[UIImage imageNamed:@"quotes_active.png"];
}
}
回答by flexo
If you want to add a custom image (icon and background) to the tab bar and not just change the blue icon:
如果要将自定义图像(图标和背景)添加到选项卡栏,而不仅仅是更改蓝色图标:
Add the code below to your first UIView .m-file. If you start fresh with a "Tabbed Application" project it's called FirstViewController.m Don't forget to add the images (and set check mark 'Copy items into destination group's folder') to your project and choose better names for the images.
将下面的代码添加到您的第一个 UIView .m 文件中。如果您使用名为 FirstViewController.m 的“选项卡式应用程序”项目重新开始,请不要忘记将图像添加到您的项目中(并设置复选标记“将项目复制到目标组的文件夹”)并为图像选择更好的名称。
- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *selectedImage0 = [UIImage imageNamed:@"customIcon0_unpressed.png"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"customIcon0_unpressed.png"];
UIImage *selectedImage1 = [UIImage imageNamed:@"customIcon1_unpressed.png"];
UIImage *unselectedImage1 = [UIImage imageNamed:@"customIcon1_unpressed.png"];
UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
[item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1];
}
You can find more informations about this solution and tons of other great tutorials on Ray Wenderlichspage.
您可以在Ray Wenderlichs页面上找到有关此解决方案的更多信息以及大量其他精彩教程。