设置UITabBar的高度

时间:2012-05-21 05:55:59

标签: ios tabbar

我通过设置每个项目的图像创建了一个简单的自定义标签栏,如下所示:

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

[item0 setFinishedSelectedImage:[UIImage imageNamed:@"activity_active.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"activity.png"]];
[item1 setFinishedSelectedImage:[UIImage imageNamed:@"agenda_active.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"agenda.png"]];
[item2 setFinishedSelectedImage:[UIImage imageNamed:@"settings_active.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"settings.png"]];

虽然这很好用,但我注意到我的标签栏下面有一个黑色的空白区域

enter image description here

我的图像高度为44像素,但我想我必须以某种方式改变我的标签栏的高度。

3 个答案:

答案 0 :(得分:2)

tabBar本身是49px,它在图像后面呈现黑色(可能在[UITabBar layoutSubviews]中)。然后您的图像呈现在顶部。偏移的原因是因为您提供的图像太大,UITabBar需要30x30px图标,而不是整个UITabBarItem的图片。

以下是一些尝试:

  1. 仅提供30x30px图标,而不是整个标签按钮
  2. 在标签页上设置图像后,请尝试以下操作: [item setImageInsets:UIEdgeInsetsMake(6, 0, -6, 0)]; // play with insets until it renders correctly
  3. UITabBar的子类并覆盖layoutSubviews以首先调用super,然后根据需要重新定位图片。不推荐,未来的iOS版本可能会中断。

答案 1 :(得分:0)

使用 -

tabBar.frame=CGRectMake(x,y,w,h);

通过这种方式,您可以设置xCord,yCord,width和height。

答案 2 :(得分:0)

检查一下:

[self.tabBar setFrame:CGRectMake(self.tabBar.frame.origin.x, self.tabBar.frame.origin.y - 30, self.tabBar.frame.size.width, self.tabBar.frame.size.height + 30)];