我在Xcode4.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];
在这里你可以看到我得到了什么样的输出。
发布于 2012-07-09 09:25:01
从您发布的代码中很难看出,但是您可能希望在UINavigationController
的tabBarItem
(navController2
)上设置图像,因为它看起来像是您直接添加到UITabBarController
中的图像
navController2.tabBarItem.image = [UIImage imageNamed:@"bottomright.png"];
您可以设置标题的原因是,默认情况下,导航控制器自动具有其当前子视图控制器的标题。
发布于 2012-07-09 10:31:12
看起来您成功地替换了左侧图像,但是它没有透明区域。您是否遵循了选项卡图标的设计指南?
你需要在透明的背景上使用白色图像。如果你的背景不透明,整个图像将只是一个蓝色的方框,就像你左边标签上的那个一样。
示例:若要制作带有星形的标签,请在透明背景上绘制一颗完全白色的星形。请不要使用完全白色和透明黑色以外的任何其他颜色。
发布于 2012-07-08 17:44:40
你永远不需要这样做:
[UIImage imageNamed:@"bottomleft2x.png"];
UIImage
会根据屏幕比例自动判断是否需要@2x
,所以简单一点:
[UIImage imageNamed:@"bottomleft.png"];
当然,除非您的资源名称实际上是bottomleft2x@2x.png
https://stackoverflow.com/questions/11385234
复制