标签栏垂直偏移iOS 5

时间:2012-07-04 18:04:55

标签: iphone ios5 tabbar

http://i.stack.imgur.com/NAqSJ.png

您好

我的定制标签栏出现垂直偏移问题。 UIImages与屏幕底部之间似乎存在黑色间隙。怎么解决这个问题?我在第一个viewController的viewDidLoad()方法中使用以下代码:

[super viewDidLoad];
UIImage *selectedImage0 = [UIImage imageNamed:@"tabBarButtonHomeSelected.png"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"tabBarButtonHomeUnselected.png"];

UIImage *selectedImage1 = [UIImage imageNamed:@"tabBarButtonUserSelected.png"];
UIImage *unselectedImage1 = [UIImage imageNamed:@"tabBarButtonUserUnselected.png"];

UIImage *selectedImage2 = [UIImage imageNamed:@"tabBarButtonPricetagSelected.png"];
UIImage *unselectedImage2 = [UIImage imageNamed:@"tabBarButtonPricetagUnselected.png"];

UIImage *selectedImage3 = [UIImage imageNamed:@"tabBarButtonStarSelected.png"];
UIImage *unselectedImage3 = [UIImage imageNamed:@"tabBarButtonStarUnselected.png"];

UIImage *selectedImage4 = [UIImage imageNamed:@"tabBarButtonGearSelected.png"];
UIImage *unselectedImage4 = [UIImage imageNamed:@"tabBarButtonGearUnselected.png"];

UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];
UITabBarItem *item3 = [tabBar.items objectAtIndex:3];
UITabBarItem *item4 = [tabBar.items objectAtIndex:4];

[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
[item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1];
[item2 setFinishedSelectedImage:selectedImage2 withFinishedUnselectedImage:unselectedImage2];
[item3 setFinishedSelectedImage:selectedImage3 withFinishedUnselectedImage:unselectedImage3];
[item4 setFinishedSelectedImage:selectedImage4 withFinishedUnselectedImage:unselectedImage4];

我很感谢你。

3 个答案:

答案 0 :(得分:1)

通常标签标题会进入该空间。你的标签项都有空标题,是故意的吗?如果是,那么您应该更改工具栏视图的默认框架,可能是将其frame.origin.y增加了差距。

答案 1 :(得分:1)

解决方案是制作三种类型的图像。 首先,您需要TabBar的背景。 其次,您需要一个尺寸为一个按钮的图像,用于一个选项卡的选定或突出显示的背景。 第三,你需要没有任何背景的图标。

现在用

设置TabBar背景
[tabBar setBackgroundImage:[UIImage imageNamed:@"background.png"]];

然后您将突出显示的背景图块设置为:

[tabBar setSelectionIndicatorImage:[UIImage imageNamed:@"selected.png"]];

然后你需要像在问题中那样设置你的图标。 这应该可以胜任。

答案 2 :(得分:0)

您现在可以在Storyboard中解决此问题。 Storyboard size inspector image inset adjustment

选择要调整的标签栏项目,打开“大小检查器”,然后调整“顶部和底部图像插入”。你需要调整它们相同的数量,否则它们只会挤压/拉伸你的图像(所以在顶部+5,在底部-5)