标签栏图像未在 iOS 7.1 中显示
Posted
技术标签:
【中文标题】标签栏图像未在 iOS 7.1 中显示【英文标题】:TabBar Images not showing in iOS 7.1 【发布时间】:2014-06-14 12:42:46 【问题描述】:我正在开发一个以 ios 7.1 作为其部署目标的应用程序。到目前为止一切正常,但是有一个大问题,标签栏图像没有显示。这很令人困惑,因为它们是在 iOS 8 模拟器上运行时出现的,我使用的是 Xcode 6 beta 1。
我设置了两个图像。尺寸为 60x60 和 70x60。所以大小似乎不是问题。我已经在 Interface Builder 中设置了图像。然而,当将标签栏图像记录到控制台时,它返回 nil。然后我尝试在代码中设置图像,并使用相同的方法将其记录到控制台,我现在有了图像的内存地址,但它仍然没有显示出来。
在 Google 和 *** 上搜索答案时,我发现了这种方法:
self.tabBarItem.image = [[UIImage imageNamed:@"IMAGE"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.tabBarItem.selectedImage = [[UIImage imageNamed:@"IMAGE"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
NSLog(@"%@", self.tabBarItem.image);
这显然适用于某些用户,但不适用于我。我想不通,如果有人可以帮助我,我会很高兴。
【问题讨论】:
你确定你有一张名为“IMAGE”的图片吗?这段代码没有理由不起作用,除非 A) self.tabBarItem 不存在 (=nil) 或 B) 图像不存在 我在这篇文章中用“IMAGE”替换了我原来的名字。在 Interface Builder 中设置图像,然后将其记录到我的视图控制器中的控制台时,我得到了 nil。然后,当我在控制器中设置图像并记录图像时,我得到了一个内存地址,但图像仍然不会显示。 你已将它添加到 UITabBarController 类中? 我有一个 UITableViewController 子类,它连接到我的故事板中的标签栏。该关系存在,否则该选项卡将根本不会显示在模拟器中。我尝试在控制器中设置图像,如上所述,在 viewDidLoad 中。 我有一个连接到标签栏的 UITableViewController 子类?我不明白...您能张贴您正在尝试做的事情的图片吗? 【参考方案1】:我对你在做什么有一种感觉,但还不清楚。
你有一个标签栏,但你有一个标签栏项目本身的出口。
你不会这样做。您创建一个到标签栏的插座,然后添加自定义项目:
UIImage *defaultImage = [UIImage imageNamed:@"ImageName"];
UIImage *selectedImage = [UIImage imageNamed:@"ImageName"];
UITabBarItem *itemZero = [[UITabBarItem alloc] initWithTitle:@"Item One" image:defaultImage selectedImage:selectedImage];
UITabBarItem *itemOne = [[UITabBarItem alloc] initWithTitle:@"Item Two" image:defaultImage selectedImage:selectedImage];
NSArray *items = @[itemZero,itemOne];
[self.tabBar setItems:items animated:animated];
【讨论】:
谢谢。问题是,我在 Storyboard 中设置了 TabBarController。添加 ViewControllers 时,标签栏项目会自动创建,您可以设置标题和图像。所以我可以在我的代码中引用它,而无需设置插座,使用 self.tabBarItem 因为我的控制器连接到 TabBarController。我希望这是有道理的。以上是关于标签栏图像未在 iOS 7.1 中显示的主要内容,如果未能解决你的问题,请参考以下文章