iOS干货

UITabBarItem如何去掉title只留下Img

问题描述

通常在UITabBar的每个选项卡上,您都有一个小图像和一个标题命名该选项卡。该图像定位/居中于标签的顶部,以适应下方的标题。我的问题是:如果你想有一个只有一个图像的tabBar,没有标题有一种方法可以将图像向下移动,以便它在标签中更好?

我正在使用(见下文):

[tabBarItem setFinishedSelectedImage:tabSelected withFinishedUnselectedImage:tabUnselected];

但是更喜欢使用没有标题的较大图像,此刻如果我使图像大于约70pixels @ 2x,它将从UITabBar的顶部开始,同时在底部留下大量未使用的空间。

最佳解决方案

尝试调整tabBarItemimageInsets(用于移动图标图像)并将控制器标题设置为nil(因此不显示标题)。将这样的东西放到-init-viewDidLoad方法的视图控制器中:

self.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
self.title = nil;

UITabBarItem是具有UIEdgeInsets imageInsets性质的UIBarItem的亚类。用插图玩一点,直到看起来不错(取决于你的标签图标图像)

 

*演示于Xcode版本7.3.1(7D1014)

 

第三种解决方案

 

制作UITabBarController的子类,并在其viewDidLoad中:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.viewControllers enumerateObjectsUsingBlock:^(UIViewController *vc, NSUInteger idx, BOOL *stop) {
        vc.tabBarItem.title = nil;
        vc.tabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0);
    }];
}

Swift 3:

for vc in self.viewControllers! {
    vc.tabBarItem.title = nil
    vc.tabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0)
}

第四种方案

如果您使用Xamarin,则可以使用:

screen.TabBarItem.ImageInsets = new UIEdgeInsets(5, 0, -5, 0);
screen.TabBarItem.Title = "";

 

发表评论

邮箱地址不会被公开。 必填项已用*标注