iOS 自定义TabBar的实现

实现效果大概就是这个样子的,图片不咋好看,凑活着看看技术分享

直接贴代码吧

  1. 首先创建一个singleview程序

  2. 将ViewController基类改成UITabBarController

  3. 然后写.m文件 如下[ps  我这是开了arc的]

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    [self initOwnControllers];
    [self initOwnTabView];
    [self.tabBar setHidden:YES];
}

/*
 *设置多个标签页,为了切换
 **/
- (void)initOwnControllers{
    NSArray *array = @[@"主页",@"更多",@"文件",@"信息",@"发现"];  // 每个标签页标题
    
    NSMutableArray *conArray = [[NSMutableArray alloc] init];
    
    for (NSString *object in array) {  // 遍历
        UIViewController *con = [[UIViewController alloc] init];
        con.title = object;
        // 设置导航栏是为了显示标题,便于区分切换到哪页
        UINavigationController *controll = [[UINavigationController alloc] initWithRootViewController:con];
        [conArray addObject:controll];
    }
    
    self.viewControllers = conArray;
}

/*
 * 定义自己的tabbar
 **/
- (void)initOwnTabView{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(5, 519, 310, 44)]; // 使用最新的XCode,坐标有点问题,自己调一下就好
    view.backgroundColor = [UIColor whiteColor];
    view.layer.cornerRadius = 9; // 设置圆角,好看点
    
    // 加载每个按钮的图片
    NSArray *imageArray = @[@"home.png",@"much.png",@"file.png",@"message.png",@"discover.png"];
    for (int index = 0; index < [imageArray count]; index++) {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
        [button setImage:[UIImage imageNamed:imageArray[index]] forState:UIControlStateNormal];
        [button addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventTouchDown];
        button.frame = CGRectMake(21+index*62, 7, 30, 30);  // 这个坐标要设置正确
        
        button.tag = index;   // 设置tag 为了方便设置切换页
        [view addSubview:button];
    }
    
    [self.view addSubview:view];
}

- (void)pageChanged:(UIButton *)button{
    self.selectedIndex = button.tag;   // 自己的按钮的事件处理
}



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。