首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择Xcode 6 Beta时UITabBarItem图像消失

选择Xcode 6 Beta时UITabBarItem图像消失
EN

Stack Overflow用户
提问于 2014-08-12 19:21:40
回答 8查看 8.3K关注 0票数 11

不过,对于开发来说,Xcode Betas相当新,这让我有点头疼(Xcode 6 beta 5/ iOS 8)。

已经找到了一些答案,但大多与Xcode 5及以下相关。

所有操作都很好,但是选择的图标/视图控制器消失了。在Xcode 5-4中,图像资产甚至没有提供以下错误消息。但是,错误消息仍然在运行。

截图:

CUICatalog:提供的无效资产名称:(null) 2014-08-12 15:16:26.521 TheApp5275:3231837 CUICatalog:提供的无效资产名称:(null) 2014-08-12 15:16:26.521 the 5275:3231837无法加载从包中引用的带有标识符"YourCompnay.TheApp“的"(null)”图像

我绞尽脑汁想弄清楚到底是我的连接/图像,还是仅仅是Xcode beta bug。

Def需要帮助和明确的解释。ELI5。

任何帮助都将不胜感激。我似乎找不到与这一错误具体有关的任何东西。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-08-13 18:43:20

我和你的处境几乎完全一样。和您一样,我的“未选定”选项卡图像会显示得很好,但是对于我选择的选项卡图像,它们将不存在,我将得到“无法加载空图像.”。错误。

我一直在给故事板IB里的图片.也许你也是这么做的。无论哪种方式,在UITabBarItem属性检查器中的IB中,都有两个不同的字段。一种是在Tab栏项下,它被命名为Selected。另一个位于Bar Item部分下,它名为Image。为了清楚起见(重申我的第一段,但就IB而言),我在分配给每个图像/Selected_ image字段的.xcassets中保存了“有效”图像(每个图像与另一个图像略有不同,以区分选择)。我在图像字段中的那个会出现,而我在选定的图像字段中的那个就不会出现了。

如果我把图像字段中的“好”输入到选定的图像字段中,我仍然会得到错误,这对我来说是没有意义的。

但是,如果我只将“未选定的”图像放置在条形图项->图像字段中,并将Tab栏项-> selected image留为空,则该图像将在两处使用,并在选中时被高亮显示为蓝色。这并没有给我提供我想要的小的图像更改(因为我对用于条形按钮的Apple的评论表明,对于所选的项,我的图像中应该有“更厚的线条”),它至少会为所选的选项卡提供一个图像。希望这也能帮到你。

票数 15
EN

Stack Overflow用户

发布于 2014-09-30 16:26:22

Yjo的回答实际上不是解决这个问题的方法。它使制表符对正常状态和选定状态都使用未选择的图像,但不允许对所选状态使用不同的图像,这在Apple的文档中是推荐的。

错误在于,故事板中选项卡条项的“选定图像”字段根本不起作用,而且到Xcode 6.0.1时,它仍然是一个问题--我使用的是直接包含在应用程序资源中的图像,而不是.xcassets,而且我也遇到了同样的问题。这些图像存在于我的应用程序包中,它们在编辑我的故事板时出现在下拉框中,但是我得到了相同的Could not load the "(null)" image ...错误,以及一个空白的选定图像。

我的解决方案是将其添加到选项卡条目的(视图控制器) viewWillAppear方法中:

代码语言:javascript
复制
[[self tabBarItem] setSelectedImage:[UIImage imageNamed:@"(selected image file)"]];

但是,在进行此操作时,我发现图像的大小在被选中/未选择时变化很小,尽管我的图像大小相同。这可能是因为标签栏项的图像大小是以某种特定的方式预先计算出来的,而我们正在处理它们,就在它们即将被绘制的时候。这是一个小问题,但这足以困扰我,因此为了使它们更完美,我删除了前面的代码,并将其添加到我的选项卡控制器的 viewWillAppear方法中:

代码语言:javascript
复制
[(UITabBarItem*)[[[self tabBar] items] objectAtIndex:n] setImage:[UIImage imageNamed:@"(unselected image file)"]];
[(UITabBarItem*)[[[self tabBar] items] objectAtIndex:n] setSelectedImage:[UIImage imageNamed:@"(selected image file)"]];

其中n是选项卡栏项的索引。(从0开始)

很丑但很管用。据我所知,"selected“字段在Xcode 6中不起作用。

票数 14
EN

Stack Overflow用户

发布于 2015-06-15 10:22:57

在用户定义的运行时属性中定义selectedImage (比如在这个答案中)对我很有用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25272394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档