0

我在 xcode 4.2 中创建了新的选项卡栏项目,并且没有应用程序委托 xib 文件。项目有两个导航控制器。我可以设置标签栏的名称,但无法设置图像。我完全受够了许多尝试。FirstViewController *firstView = [[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil]

firstView.title=@"Birthdays";
firstView.tabBarItem.image=[UIImage imageNamed:@"bottomleft.png"]; 
SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil]; 
secondView.title=@"Settings"; 
secondView.tabBarItem.image=[UIImage imageNamed:@"bottomright.png"]; 
UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:secondView];
    navController2.navigationBarHidden=YES;
    [viewControllers addObject:navController2];   

在此处输入图像描述

在这里你可以看到我得到了什么样的输出。

4

4 回答 4

1

很难从您发布的代码中分辨出来,但您可能希望tabBarItemUINavigationController( navController2) 上设置图像,因为它看起来像是您直接添加给您的UITabBarController

navController2.tabBarItem.image = [UIImage imageNamed:@"bottomright.png"];

您可以设置标题的原因是导航控制器默认自动拥有其当前子视图控制器的标题。

于 2012-07-09T09:25:00.830 回答
1

看起来您成功替换了左侧图像,但是它没有透明区域。您是否遵循了设计选项卡图标的指南?

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html

您需要在透明背景上使用白色图像。如果您的背景不透明,则整个图像将只是一个蓝色框,就像您左侧选项卡上的那个一样。

示例:要制作一个带有星形的标签,请在透明背景上绘制一个全白的星形。请勿使用除全白和透明黑色以外的任何其他颜色。

于 2012-07-09T10:31:11.697 回答
0

你永远不需要这样做:

[UIImage imageNamed:@"bottomleft2x.png"]; 

UIImage会根据屏幕比例自动判断是否@2x需要,所以简单点:

[UIImage imageNamed:@"bottomleft.png"];

当然,除非您的资源名称实际上是bottomleft2x@2x.png

于 2012-07-08T17:44:39.767 回答
0

花花公子标签栏只允许白色和透明背景,所以如果你想让图片像生日蛋糕,然后在透明背景上画一个白色生日蛋糕,然后在蛋糕旁边添加一些透明像素来创建蛋糕的外观而不是只是蛋糕的轮廓,然后你可以将你的图像设置为标签栏

于 2012-07-12T03:04:09.657 回答