博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义tabBar
阅读量:6412 次
发布时间:2019-06-23

本文共 4121 字,大约阅读时间需要 13 分钟。

hot3.png

 
  1. 创建继承与UITabBarViewController 的 ViewController

  2. ////  CustomViewController.m//  EmpManager////  Created by _Tiny on 16/1/18.//  Copyright © 2016年 dean. All rights reserved.//#import "CustomViewController.h"#import "MyViewController.h"@interface CustomViewController ()
    @property(nonatomic,retain)UIButton *btn;@property(nonatomic,assign)BOOL isSel;@property(nonatomic,retain)NSMutableArray *allButtonArray;@end@implementation CustomViewController- (void)viewDidLoad {    [super viewDidLoad];    self.tabBar.hidden = YES;        [self tabBarCustom];    // Do any additional setup after loading the view.}-(void)tabBarCustom{   //首先移除当前的tabBar    [self.tabBarController.tabBar removeFromSuperview];    //自定义view放按钮    UIView *myView = [[UIView alloc]init];    myView.frame = CGRectMake(0, 603*Height, 375*Width, Height*64);    //    self.tabBarController.delegate = self;*签协议,(使用selectedIndex属性)*    [self.view addSubview:myView];    //设置按钮选中前图片    NSMutableArray *tabBarImage = [NSMutableArray arrayWithObjects:@"shouye1.png",@"tongxunli1.png",@"wode1.png", nil];    //设置按钮选中图片    NSMutableArray *tabBarSelImage = [NSMutableArray arrayWithObjects:@"shouyexuanzhong1.png",@"tongxunluxuanzhong1.png",@"wodexuanzhong", nil];    self.allButtonArray = [NSMutableArray array];    for (int i = 0;  i < 3 ;  i ++) {        self.btn = [UIButton buttonWithType:UIButtonTypeCustom];        self.btn.frame = CGRectMake(Width*(125*i), 0, 125, 64);//        self.btn.backgroundColor = [UIColor grayColor];        [self.allButtonArray addObject:self.btn];        [myView addSubview:self.btn];          self.btn.tag = i;//设置按钮的标记, 方便来索引当前的按钮,并跳转到相应的视图        [self.btn addTarget:self action:@selector(clickBtn:) forControlEvents:UIControlEventTouchUpInside];        [self.btn setBackgroundImage:[UIImage imageNamed:[tabBarImage objectAtIndex:i]] forState:UIControlStateNormal];        [self.btn setBackgroundImage:[UIImage imageNamed:[tabBarSelImage objectAtIndex:i]] forState:UIControlStateSelected];        //初始设置为未选中        self.btn.selected = NO;        //第一个按钮为选中状态        if (self.btn.tag == 0) {            self.isSel = YES;        }else{            self.isSel = NO;        }        if (self.isSel == YES) {            self.btn.selected = YES;        }else{            self.btn.selected = NO;                       }            } }//按钮点击方法 -(void)clickBtn:(UIButton *)sender{    //    NSMutableArray * arr = [NSMutableArray arrayWithArray:self.allButtonArray];    for (UIButton * bu in self.allButtonArray) {        if (bu.tag == sender.tag) {            bu.selected = YES;            arr[sender.tag] = bu;        }else{            bu.selected = NO;        }    }    //最关键的一句,点击当前按钮,对应相应的tabBar    self.selectedIndex = sender.tag; }- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end
  3. 在Appdelegate.m#pragma mark - 加载自动登录的页面- (void)setupHomeViewController{        self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];    self.window.backgroundColor = [UIColor whiteColor];    [self.window makeKeyAndVisible];        HomeViewController *homeVC = [[HomeViewController alloc]init];    UINavigationController *navHomeVC = [[UINavigationController alloc]initWithRootViewController:homeVC];        AddressBookViewController *addressBVC = [[AddressBookViewController alloc]init];     UINavigationController *navVC = [[UINavigationController alloc]initWithRootViewController:addressBVC];        MyViewController *myVC = [[MyViewController alloc]init];     UINavigationController *navMyVC = [[UINavigationController alloc]initWithRootViewController:myVC];        CustomViewController *customVC = [[CustomViewController alloc]init];    customVC.viewControllers = [NSArray arrayWithObjects:navHomeVC,navVC,navMyVC, nil];    self.window.rootViewController = customVC;  }
  4. #pragma mark - 图片渲染- (UIImage *)renderImageWithImageName:(NSString *)imageName{    UIImage * image = [[UIImage imageNamed:imageName] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];    return image;}

转载于:https://my.oschina.net/gmxfcnb/blog/604226

你可能感兴趣的文章
Oracle DG--Rman备份集搭建备库
查看>>
一个10年技术总监的3个求职方法论
查看>>
蚂蚁金服阳振坤:用10年时间打造一个“顶天立地”的产品 ...
查看>>
对话Roadstar投资人:一家自动驾驶公司之死(一) ...
查看>>
PostgreSQL psql 绘制饼图
查看>>
iPhone诞生以后,从此UI设计行业就迅速发生了翻天覆地的变化! ...
查看>>
java中字符串拼接过程中,StringBuilder和“+”的区别? ...
查看>>
原金立总裁卢伟冰加入小米,雷军发微博欢迎
查看>>
直播:Graph图数据库基础介绍及场景
查看>>
华为首次公布战略研究院 进入创新领航2.0时代
查看>>
P2S、P2P、P2SP之对比
查看>>
如何自学编程?学习方法在这里!
查看>>
苹果“开除”Facebook,原因是后者违反协议分发数据收集APP
查看>>
系统架构 一致性问题 : 库存扣减
查看>>
Okhttp去除请求头user-agent
查看>>
什么是消息队列?
查看>>
为全力发展AIOT,小米把松果电子分拆重组了
查看>>
人工智能召唤“神龙”,阿里云发布首个云上异构超算集群
查看>>
深入解读MySQL8.0 新特性 :Crash Safe DDL
查看>>
【翻译】Prometheus 2.4.0 新特性
查看>>