我通过设置每个项目的图像创建了一个简单的自定义标签栏,如下所示:
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"]];
虽然这很好用,但我注意到我的标签栏下面有一个黑色的空白区域
我的图像高度为44像素,但我想我必须以某种方式改变我的标签栏的高度。
答案 0 :(得分:2)
tabBar本身是49px,它在图像后面呈现黑色(可能在[UITabBar layoutSubviews]
中)。然后您的图像呈现在顶部。偏移的原因是因为您提供的图像太大,UITabBar需要30x30px图标,而不是整个UITabBarItem的图片。
以下是一些尝试:
[item setImageInsets:UIEdgeInsetsMake(6, 0, -6, 0)]; // play with insets until it renders correctly
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)];