美文网首页
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