美文网首页
UITabBarController怎么写:(解决iOS13.0

UITabBarController怎么写:(解决iOS13.0

作者: 阳光下的叶子呵 | 来源:发表于2020-11-14 23:06 被阅读0次

```

#import "ACMainTabBarController.h"

// 首页

#import "ACHomeViewController.h"

#import "HomeNavigationController.h"

// 圈子(宠物圈)

#import "ACPetGroupViewController.h"

#import "PetGroupNavigationViewController.h"

// 预约记录

#import "ACOrderViewController.h"

#import "OrderNavigationViewController.h"

// 个人中心

#import "ACMineViewController.h"

#import "MineNavigationController.h"

#define kCX_FONT(R) [UIFont systemFontOfSize:R]

#define RGB(R,G,B,A) [UIColor colorWithRed:R/255.0fgreen:G/255.0fblue:B/255.0falpha:A/1.0]

#define kIMAGE(imageName) [UIImage imageNamed:[NSString stringWithFormat:@"%@",imageName]]

@interface ACMainTabBarController () <UITabBarDelegate, UITabBarControllerDelegate, UIAppearance>

@property (nonatomic, strong) NSMutableArray *items; // 4 个tabBar

@end

```

```

@implementation ACMainTabBarController

- (void)viewDidLoad {

    [super viewDidLoad];

    self.delegate=self;

//    self.items = [NSMutableArray arrayWithCapacity:4];

    self.items = [NSMutableArray new];

//    self.tabBar.backgroundImage = [UIImage imageNamed:@""];

    __weaktypeof(self) weakSelf =self;

    HomeNavigationController *homeNC = [[HomeNavigationController alloc] homeinit];

    PetGroupNavigationViewController *petGroupNC = [[PetGroupNavigationViewController alloc] petGroupInit];

    OrderNavigationViewController *orderNC = [[OrderNavigationViewController alloc] orderInit];

    MineNavigationController *mineNC = [[MineNavigationController alloc] mineInit];

/**

// 这样写,就可以省略 创建 UINavigationController 的过程了

    UINavigationController *homeNC = [[UINavigationController alloc] initWithRootViewController:[[CLHomeViewController alloc] init]];

    UINavigationController *forumNC = [[UINavigationController alloc] initWithRootViewController:[[CLForumViewController alloc] init]];

    UINavigationController *mineNC = [[UINavigationController alloc] initWithRootViewController:[[CLMineViewController alloc] init]];

*/

    [self addItemWith:homeNC withTitle:@"首页" withNormalImage:@"home_normal_icon" withSelectedImage:@"home_selected_icon"];

    [self addItemWith:petGroupNC withTitle:@"圈子" withNormalImage:@"type_normal_icon" withSelectedImage:@"type_selected_icon"];

    [self addItemWith:orderNC withTitle:@"预约" withNormalImage:@"yuyue_normal_icon" withSelectedImage:@"yuyue_selected_icon"];

    [self addItemWith:mineNC withTitle:@"我的" withNormalImage:@"mine_normal_icon" withSelectedImage:@"mine_selected_icon"];

    [self finishAddItems];

}

- (void)addItemWith:(__kindof UIViewController *)vc

          withTitle:(NSString*)title

    withNormalImage:(NSString*)normal

  withSelectedImage:(NSString*)selected {

    // 设置 tabbarItem 选中状态的图片(不被系统默认渲染,显示图像原始颜色)

//    UIImage *normalImage = [[UIImage imageNamed:[NSString stringWithFormat:@"%@",normal]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

    UIImage *normalImage = [kIMAGE(normal) imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

    UIImage *selectedImage = [kIMAGE(selected) imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

    vc.tabBarItem = [[UITabBarItem alloc] initWithTitle:title image:normalImage selectedImage:selectedImage];

    // 设置 tabbarItem 选中状态下的文字颜色(不被系统默认渲染,显示文字自定义颜色)

    [[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor], NSFontAttributeName:[UIFont systemFontOfSize:12]} forState:UIControlStateNormal]; // normal

    [[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:RGB(186, 129, 217, 1), NSFontAttributeName:[UIFont systemFontOfSize:12]} forState:UIControlStateSelected]; // selected


    if(@available(iOS13.0, *)) {

        // iOS13 及以上

        self.tabBar.tintColor=RGB(186,129,217,1);

        self.tabBar.unselectedItemTintColor = [UIColor grayColor];

   }


//    RGB(186, 129, 217, 1) // 紫色

//    RGB(223, 47, 24, 1)  // 红色

    [_itemsaddObject:vc];

}

- (void)finishAddItems {

    self.viewControllers = [_items copy];

}

@end

```

相关文章

网友评论

      本文标题:UITabBarController怎么写:(解决iOS13.0

      本文链接:https://www.haomeiwen.com/subject/dnsgbktx.html