100

我有大小为 100 的 tabBar 的图标。

我查看了 Apple 的 2013 年人机界面指南,它说图像大小应该是30x30/ 60x60

但由于标签栏控制器的高度为 50,我将图像的大小保持在50x50.

现在,当我运行该项目时,我看到下面的丑陋设计:

在此处输入图像描述

知道我应该使用什么尺寸的图像才能使设计完美吗?

注意:我也不是在写文本(例如主页、搜索等)。选项卡按钮的文本在图像本身中。

4

6 回答 6

211

根据Apple 人机界面指南

@1x:约 25 x 25(最大:48 x 32)

@2x:约 50 x 50(最大:96 x 64)

@3x:约 75 x 75(最大:144 x 96)

于 2015-04-01T04:56:03.860 回答
116

30x30 是点,这意味着 30px @1x,60px @2x,而不是介于两者之间。此外,将选项卡的标题嵌入到图像中也不是一个好主意——这样的可访问性和本地化结果会很差。

于 2013-08-05T22:14:14.500 回答
45

根据最新的Apple 人机界面指南:

在纵向中,选项卡栏图标显示在选项卡标题上方。在横向中,图标和标题并排显示。根据设备和方向,系统会显示常规或紧凑的标签栏。您的应用应包含两种尺寸的自定义标签栏图标。

在此处输入图像描述

在此处输入图像描述

我建议您使用上面的链接来理解完整的概念。因为苹果定期更新它的文档

于 2017-12-07T05:22:37.823 回答
6

参考: https: //developer.apple.com/ios/human-interface-guidelines/graphics/custom-icons/[https://developer.apple.com/ios/human-interface-guidelines/graphics/custom-icons /]

在此处输入图像描述

所以50x50的尺寸是个不错的选择。

于 2017-02-08T07:11:12.637 回答
2

根据我的实践,我将 40 x 40 用于标准 iPad 选项卡栏项目图标,将 80 X 80 用于视网膜。

来自苹果参考。 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/BarIcons.html#//apple_ref/doc/uid/TP40006556-CH21-SW1

如果您想创建一个看起来与 iOS 7 图标系列相关的条形图标,请使用非常细的笔划来绘制它。具体来说,2 像素笔画(高分辨率)适用于详细的图标,而 3 像素的笔画适用于不太详细的图标。

无论图标的视觉风格如何,创建以下尺寸的工具栏或导航栏图标:

大约 44 x 44 像素 大约 22 x 22 像素(标准分辨率) 无论图标的视觉风格如何,创建以下尺寸的标签栏图标:

约 50 x 50 像素(最大 96 x 64 像素) 标准分辨率约 25 x 25 像素(最大 48 x 32 像素)

于 2014-09-09T02:34:00.783 回答
-4

使用代码前请先竖起大拇指!!!为每个项目创建一个完全覆盖整个标签栏项目的图像。这是将您创建的图像用作标签栏项目按钮所必需的。确保每个标签栏项目的高度/宽度比也相同。然后:

UITabBarController *tabBarController = (UITabBarController *)self;
UITabBar *tabBar = tabBarController.tabBar;
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2];
UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];

int x,y;

x = tabBar.frame.size.width/4 + 4; //when doing division, it may be rounded so that you need to add 1 to each item; 
y = tabBar.frame.size.height + 10; //the height return always shorter, this is compensated by added by 10; you can change the value if u like.

//because the whole tab bar item will be replaced by an image, u dont need title
tabBarItem1.title = @"";
tabBarItem2.title = @"";
tabBarItem3.title = @"";
tabBarItem4.title = @"";

[tabBarItem1 setFinishedSelectedImage:[self imageWithImage:[UIImage imageNamed:@"item1-select.png"] scaledToSize:CGSizeMake(x, y)] withFinishedUnselectedImage:[self imageWithImage:[UIImage imageNamed:@"item1-deselect.png"] scaledToSize:CGSizeMake(x, y)]];//do the same thing for the other 3 bar item
于 2016-06-05T07:12:02.847 回答