UITabBarController自定义风格Item

本文将演示如何在 iOS 应用中自定义 UITabBarController 的 tab bar,并使用随机颜色设置背景图片,同时为每个 tab 创建对应的视图控制器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候我们需要自定义item   下面我模仿微信定制自定义的tabBar

首先  创建UITabBarController *tbc = [[UITabBarController allocinit];

- (void)createTabBarController

{

    UITabBarController *tbc = [[UITabBarControlleralloc] init];

    [selfsetViewControllersFor:tbc];

    

    //设置tabBar的背景图片

    tbc.tabBar.backgroundImage = [UIImageimageNamed:@"tabbar_bg"];


    NSLog(@"%@", tbc.viewControllers);

    NSLog(@"%@", tbc.childViewControllers);

    self.window.rootViewController = tbc;

    [tbc release];

}

- (void)setViewControllersFor:(UITabBarController *)tbc

{

    NSMutableArray *controllers = [NSMutableArrayarray];

    NSArray *titles = @[@[@"mainframe",@"微信"],

                        @[@"contacts",@"通讯录"],

                        @[@"discover",@"发现"],

                        @[@"me",@""]];

    for (NSUInteger i=0; i<titles.count; i++) {

        //拼接视图控制器类名

        NSString *name = [NSStringstringWithFormat:@"ViewController%lu", i];

        //转换为Class变量

        Class cls = NSClassFromString(name);

        BaseViewController *vc = [[cls alloc] init];


        //创建tabBarItem

        //创建正常状态的图片

        NSString *imageName = [NSStringstringWithFormat:@"tabbar_%@", titles[i][0]];

        UIImage *image = [[UIImageimageNamed:imageName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

        

        //创建选中状态的图片

        NSString *selectedImageName = [imageNamestringByAppendingString:@"HL"];

        UIImage *selectedImage = [[UIImageimageNamed:selectedImageName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

        UITabBarItem *tbi = [[UITabBarItemalloc] initWithTitle:titles[i][1]image:image selectedImage:selectedImage];



因为我设置背景图片的时候用的是随机颜色  所以每个界面的颜色都不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值