我的自定义标签栏出现了一些奇怪的行为.图像似乎不正确对齐.这是一个截图(我删除了自己的标签栏背景以突出显示我的问题):

这是我用来为每个状态设置图像的代码:
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:homeNavController, whatsOnNavController, mapNavController, infoNavController, nil];
self.tabBarController.delegate = self;
// For iOS 5 only - custom tabs
if ([self.tabBarController.tabBar respondsToSelector:@selector(selectedImageTintColor)])
{
// Set the background images
//[[UITabBar appearance] setBackgroundImage: [UIImage imageNamed:@"nav_bg.png"]];
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"nav_over.png"]];
[homeNavController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"nav_home_over"] withFinishedUnselectedImage:[UIImage imageNamed:@"nav_home"]];
[whatsOnNavController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"nav_whats_on_over"] withFinishedUnselectedImage:[UIImage imageNamed:@"nav_whats_on"]];
[mapNavController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"nav_map_over"] withFinishedUnselectedImage:[UIImage imageNamed:@"nav_map"]];
[infoNavController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"nav_info_over"] withFinishedUnselectedImage:[UIImage imageNamed:@"nav_info"]];
}
Run Code Online (Sandbox Code Playgroud)
我的所有替换标签图像都是正确的尺寸(非视网膜版本高49像素,宽80像素).
什么可能导致这种奇怪的行为?
这是一个更新的截图,背景到位:

Vyt*_*tis 66
UIBarItem上有一个属性(UIBarButton项继承自此类)imageInsets.
要使用全高图像(49像素)finishedSelectedImage,finishedUnselectedImage您需要设置这些图像插入:
tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
小智 25
您现在可以在Storyboard中解决此问题.故事板大小检查器图像插入调整

选择要调整的选项卡栏项目,打开"大小"检查器,然后调整"顶部和底部图像插入".你需要调整它们相同的数量,否则它们只会挤压/拉伸你的图像(所以在顶部+5,在底部-5)
| 归档时间: |
|
| 查看次数: |
14939 次 |
| 最近记录: |