如何缩放TabBarItem图像

时间:2011-01-26 11:06:39

标签: iphone objective-c uitabbar

我想在UITabBar中添加UIViewController,我不想使用UITabBarController,因为我需要将此视图控制器推送到导航控制器。

一切都很好,只是我的UITabBarItem图像没有缩放以适合要正确显示的项目大小。

如何解决这个问题?

以下是一些代码:

UITabBar *myTabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0.0, barHeight, screenBounds.size.width, 50.0)];
myTabBar.opaque = YES;

UITabBarItem *barItem1 = [[UITabBarItem alloc] initWithTitle:@"title1" image:[UIImage imageNamed:@"icon1.png"] tag:1];
UITabBarItem *barItem2 = [[UITabBarItem alloc] initWithTitle:@"title2" image:[UIImage imageNamed:@"icon2.png"] tag:2];
UITabBarItem *barItem3 = [[UITabBarItem alloc] initWithTitle:@"title3" image:[UIImage imageNamed:@"icon3.png"] tag:3];
UITabBarItem *barItem4 = [[UITabBarItem alloc] initWithTitle:@"title4" image:[UIImage imageNamed:@"icon4.png"] tag:4];

NSArray *tbItems = [NSArray arrayWithObjects:barItem1, barItem2, barItem3, barItem4, nil];
myTabBar.items = tbItems;

2 个答案:

答案 0 :(得分:3)

您应将TabBar图像保存为42x42。然后,在文件名称中添加@ 2x指令。

即。 icon1@2x.png

我们这样做是为了在iPhone 4 / iPod Touch 4G上以42x42像素加载图标,但对于旧设备缩小到21x21。

这将为您节省大量时间。另请注意,UITabBar只关心图像的alpha通道。所以单色图像是个好主意。这样可以节省空间。

答案 1 :(得分:0)

我觉得你应该使用UIToolBar或UISegmentedControl而不是UITabBar。

UITabBar通常应该与UITabBarController一起使用来管理它,并且应该用于切换app"模式"正如Apple所说。这意味着TabBarController应该是rootViewController(例如,如果您在应用程序启动之前添加登录视图作为标签栏应用程序,则会出现例外情况。)

this thread might also help