Only image as UITabBarItem

后端 未结 9 2051
伪装坚强ぢ
伪装坚强ぢ 2021-02-01 05:29

I would only like to have an icon as the UITabBarItem and not the text underneath and I was wondering if this was possible, if so, how? TIA

相关标签:
9条回答
  • 2021-02-01 05:51

    Try with below code:

    UIViewController *viewController1=[[RootViewController alloc]initWithNibName:@"RootViewController" bundle:nil];
    UIViewController *viewController2=[[SecondViewCtr alloc]initWithNibName:@"SecondViewCtr" bundle:nil];
    UIViewController *viewController3=[[ThirdViewCtr alloc]initWithNibName:@"ThirdViewCtr" bundle:nil];
    UIViewController *viewController4=[[FourthVIewCtr alloc]initWithNibName:@"FourthVIewCtr" bundle:nil];
    UIViewController *viewController5=[[FIfthViewCtr alloc]initWithNibName:@"FIfthViewCtr" bundle:nil];
    
    
    UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
    UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:viewController2];
    UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:viewController3];
    UINavigationController *nav4 = [[UINavigationController alloc] initWithRootViewController:viewController4];
    UINavigationController *nav5 = [[UINavigationController alloc] initWithRootViewController:viewController5];
    peekArray = [[NSMutableArray alloc] init];
    
    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2,nav3,nav4,nav5, nil];
    
    UITabBar *tabBar = _tabBarController.tabBar;
    UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
    UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
    UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2];
    UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];
    UITabBarItem *tabBarItem5 = [tabBar.items objectAtIndex:4];
    
    [tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"home123.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"home_112.png"]];
    [tabBarItem2 setFinishedSelectedImage:[UIImage imageNamed:@"gift123.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"gift_112.png"]];
    [tabBarItem3 setFinishedSelectedImage:[UIImage imageNamed:@"cam12.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"cam_112.png"]];
    [tabBarItem4 setFinishedSelectedImage:[UIImage imageNamed:@"message12.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"message_112.png"]];
    [tabBarItem5 setFinishedSelectedImage:[UIImage imageNamed:@"people12.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"people_112.png"]];
    
    [self.tabBarController setSelectedIndex:0];
    self.window.rootViewController = self.tabBarController;
    
    0 讨论(0)
  • 2021-02-01 05:54

    if you just set the image and pass nil to title, the image will be displayed at the top level of the UITabBar item. You have to set the position also.

    int offset = 7;
    UIEdgeInsets imageInset = UIEdgeInsetsMake(offset, 0, -offset, 0);
    

    After you set icon image for TabBarItem, you set the property value to change the image position, doing:

    uiViewController.tabBarItem.imageInsets = imageInset;
    
    0 讨论(0)
  • 2021-02-01 05:57

    REMOVE THE TITLE

    The easy way with inspector

    • Select your TabbarItem
    • In Title Position change to Custom Offset
    • Set vertical to 100
    • Done

    Fix IMAGE

    Adjuste the image

    • Select your TabbarItem
    • define your Top and Bottom

    0 讨论(0)
提交回复
热议问题