IOS删除每个标签栏项之间的空格

时间:2016-07-07 02:47:37

标签: ios objective-c uitabbarcontroller

这是我的标签栏:

enter image description here

我想在下面设计标签栏:

enter image description here

标签栏项目的标题是nil(图像内的单词)。我在下面的标签栏类中的代码:

- (void)viewDidLoad 
{
    [super viewDidLoad];
    self.tabBar.barTintColor = [UIColor colorWithRed:67/255.0 green:67/255.0 blue:67/255.0 alpha:1];
    for (UITabBarItem *tbi in self.tabBar.items) 
    {
        tbi.title = nil;
        tbi.image = [tbi.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        tbi.selectedImage = [tbi.selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        tbi.imageInsets = UIEdgeInsetsMake(6.0, 0.0, -6.0, 0.0);
    }
}

我尝试使用多种尺寸的标签栏项目,但它没有改变。请帮我解决这个问题 非常感谢!

2 个答案:

答案 0 :(得分:0)

我认为你的解决方案是正确的。 imageInsets确实更改了tabbaritem.image的大小和位置。它在我的项目中运作良好。

根据您的情况,tbi.imageInsets = UIEdgeInsetsMake(-6.0, -6.0, -6.0, -6.0);可能会更好。

如果您的文字和图片距离过近,则应调整图片本身,因为文字与图片一致

答案 1 :(得分:-1)

你的代码是对的

你可以获得标签栏的特定项目并尝试设置不同的Insets,如

 // UIEdgeInsets insets = {top, left, bottom, right};  

 UITabBarItem *tabBarItem1 = [self.tabBar.items objectAtIndex:0];
    UITabBarItem *tabBarItem2 = [self.tabBar.items objectAtIndex:1];
     UITabBarItem *tabBarItem3 = [self.tabBar.items objectAtIndex:2];
         UITabBarItem *tabBarItem4 = [self.tabBar.items objectAtIndex:3];
    tabBarItem1.imageInsets = UIEdgeInsetsMake(-6.0, -6.0, -6.0, -6.0);
    tabBarItem2.imageInsets = UIEdgeInsetsMake(-6.0, -6.0, -6.0, -6.0);
    tabBarItem3.imageInsets = UIEdgeInsetsMake(-6.0, -6.0, -6.0, -6.0);
   tabBarItem4.imageInsets = UIEdgeInsetsMake(-6.0, -6.0, -6.0, -6.0);