iOS开发 UITabBar的图标显示异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发 UITabBar的图标显示异常相关的知识,希望对你有一定的参考价值。

试过很多种大小到图片 显示的结果都是蓝色一块,无法正常显示 代码如下:
[self.tabBarItem setImage:[UIImage imageNamed:@"hometabicon.png"]];

self.title = @"home";

参考技术A 最近在项目开发过程中,遇到一个问题,十分蛋疼---UITabbar自定义的图标模糊,刚开始用的是34*33的尺寸,太大,后来去官网核对了下,是30*30的。但奇怪的是用这个尺寸的图标,UITabbar选项在被选择的时候,图标边缘很模糊:

开始是怀疑尺寸的问题,试了各种尺寸都不行,后来也试了各种颜色的,结果也是模糊。从网上查了很多资料,也都解决不了问题,直到今天,无意中发现了真相,其实很简单,这牵扯到了ios 系统的机制问题。
每个UITabbar图标都需要两种图片,一张灰色或黑色背景,30*30左右,一张纯白色背景,30*30到60*60间的尺寸都行,比如:

在图片命名的时候,必须遵守一个条件,第一张图片名字是name.png,第二张图片名字必须是name@2x.png,(注意都是英文标点,x小写),
显示在UITabbar上的图标大小,会随着name@2x.png 图标大小而改变,目前还不清楚这种机制的来龙去脉,希望了解的通知下
这样设置后,图标就清晰了
看我这么认证回答,希望朋友能够采纳啊,谢谢啦!

UITabBar 图标未正确显示

【中文标题】UITabBar 图标未正确显示【英文标题】:UITabBar Icons not appearing correctly 【发布时间】:2018-05-24 10:34:39 【问题描述】:

我正在开发一个 iOS 应用程序。我有一个带有 5 个视图控制器的标签栏。所有的图标都在 Storyboard 中设置:

当我启动应用程序时,2 搞砸了。主页(第一个 TabBar 视图控制器)实际上丢失了,最后一个(消息)甚至看起来都不像它应该的样子。我不知道发生了什么。主页标签栏图标完全消失了,未选中的消息图标看起来也不一样了。

我可以向您保证,所有图标都在 Assets 文件夹中。

但是当我启动应用程序时,它看起来像这样:

更新:我想出了消息标签栏项目(渲染为:原始图像解决了这个问题)。那是固定的。但是主页项目仍然没有显示。

【问题讨论】:

分享您的示例项目。 (带有标签栏和图标图像)。试试这个:删除故事板引用并直接与导航控制器附加选项卡项连接。然后为视图控制器添加情节提要参考 【参考方案1】:

试试这个

转到资产文件夹。选择您的标签图像。在属性下的右侧,您将找到“渲染为”。选择“原始图像”。

【讨论】:

谢谢,但已经建议了,但它不起作用。【参考方案2】:

玩了几个小时后,我终于弄明白了。基本上,由于我更改了UIStoryboard 中的顺序,因此删除了主视图控制器的UINagivationController 中的TabBarItem。您所要做的就是在UINagivationController 中添加一个新的TabBarItem 并设置您想要的图像/图标。

【讨论】:

【参考方案3】:

转到您的视图控制器并选择标签栏(点击底部图标)

并设置选中的图片和图片

然后转到您的图像资源并将所选图像的渲染模式更改为原始模式

希望对你有帮助

【讨论】:

双重检查了这个,我的项目也一样。不是这样的。 @Dani 你在以编程方式做任何事情吗? 我唯一要做的就是设置tabBar.tintColortabBar.barTintColortabBar.unselectedItemTintColor。就是这样。在我添加一个容器视图并将该视图控制器嵌入到容器视图之前,这一切都正常工作。 @Dani 你能否评论一下这些东西,只是为了测试和检查天气,也不是【参考方案4】:

确保所有图片都在您的项目资产文件夹中。

【讨论】:

这就是为什么我发布了一些屏幕截图以显示所有图像确实存在。我知道人们会这么建议。但它们在资产文件夹中。 @Dani 你可以分享你的项目吗?【参考方案5】:

确保下载的图标大小为 25*25 以达到 1x 大小。那会起作用的。

【讨论】:

不。可悲的是它没有用。顺便说一句,没有一个图标是那个大小。他们都工作。家也一直工作到最近,然后它就消失了。在此之前它有效,我还没有触及资产文件夹。

以上是关于iOS开发 UITabBar的图标显示异常的主要内容,如果未能解决你的问题,请参考以下文章

UITabBar 未在 ios 7 中显示所选项目图像

配置超过 16 个项目的 UITabBar

自定义颜色的 UITabBar 图标

带有类似于 uitabbar 的图标/文本的 uitoolbar

白色背景的应用程序图标仅在 iOS 上显示为黑色

iOS 模拟器使用模板渲染模式在透明图像上显示白色背景