我有大小为 100 的 tabBar 的图标。
我查看了 Apple 的 2013 年人机界面指南,它说图像大小应该是30x30
/ 60x60
。
但由于标签栏控制器的高度为 50,我将图像的大小保持在50x50
.
现在,当我运行该项目时,我看到下面的丑陋设计:
知道我应该使用什么尺寸的图像才能使设计完美吗?
注意:我也不是在写文本(例如主页、搜索等)。选项卡按钮的文本在图像本身中。
我有大小为 100 的 tabBar 的图标。
我查看了 Apple 的 2013 年人机界面指南,它说图像大小应该是30x30
/ 60x60
。
但由于标签栏控制器的高度为 50,我将图像的大小保持在50x50
.
现在,当我运行该项目时,我看到下面的丑陋设计:
知道我应该使用什么尺寸的图像才能使设计完美吗?
注意:我也不是在写文本(例如主页、搜索等)。选项卡按钮的文本在图像本身中。
30x30 是点,这意味着 30px @1x,60px @2x,而不是介于两者之间。此外,将选项卡的标题嵌入到图像中也不是一个好主意——这样的可访问性和本地化结果会很差。
根据最新的Apple 人机界面指南:
在纵向中,选项卡栏图标显示在选项卡标题上方。在横向中,图标和标题并排显示。根据设备和方向,系统会显示常规或紧凑的标签栏。您的应用应包含两种尺寸的自定义标签栏图标。
我建议您使用上面的链接来理解完整的概念。因为苹果定期更新它的文档
所以50x50的尺寸是个不错的选择。
根据我的实践,我将 40 x 40 用于标准 iPad 选项卡栏项目图标,将 80 X 80 用于视网膜。
如果您想创建一个看起来与 iOS 7 图标系列相关的条形图标,请使用非常细的笔划来绘制它。具体来说,2 像素笔画(高分辨率)适用于详细的图标,而 3 像素的笔画适用于不太详细的图标。
无论图标的视觉风格如何,创建以下尺寸的工具栏或导航栏图标:
大约 44 x 44 像素 大约 22 x 22 像素(标准分辨率) 无论图标的视觉风格如何,创建以下尺寸的标签栏图标:
约 50 x 50 像素(最大 96 x 64 像素) 标准分辨率约 25 x 25 像素(最大 48 x 32 像素)
使用代码前请先竖起大拇指!!!为每个项目创建一个完全覆盖整个标签栏项目的图像。这是将您创建的图像用作标签栏项目按钮所必需的。确保每个标签栏项目的高度/宽度比也相同。然后:
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