您的位置:首页 > 移动开发 > IOS开发

IOS-自定义TabBar

2015-01-13 22:04 274 查看
//
//  RQHTabBarController.m
//  TabBarView
//
//  Created by apple on 15-1-13.
//  Copyright (c) 2015年 __MyCompanyName__. All rights reserved.
// 可以让storyboard中关联这个类,这个类继承UITabBarController

#import "RQHTabBarController.h"

@implementation RQHTabBarController
@synthesize selectedBtn;//也可以用Bool值来写,用来取反

- (void)viewDidLoad
{

CGRect rect = self.tabBar.frame;//拿到tabbar的大小
[self.tabBar removeFromSuperview];//删除系统的tabbar

//创建一个View取代tabbar的位置
UIView *myView = [UIView new];
myView.frame = CGRectMake(0, rect.origin.y-30, rect.size.width, rect.size.height+30);
[self.view addSubview:myView];

UIImageView *background = [[UIImageView alloc]initWithFrame:myView.bounds];
background.image = [UIImage imageNamed:@"BackGroundTabBar"];
[myView addSubview:background];

for (int i=0; i<3; i++) {
UIButton *btn = [UIButton new];
NSString *imageName = [NSString stringWithFormat:@"TabBar%d", i + 1];
NSString *imageNameSel = [NSString stringWithFormat:@"TabBar%dSel", i + 1];

[btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:imageNameSel] forState:UIControlStateSelected];
CGFloat x = i * myView.frame.size.width / 5;
btn.frame = CGRectMake(x, 0, myView.frame.size.width / 5, myView.frame.size.height+10);

[myView addSubview:btn];

btn.tag = i;//设置按钮的标记, 方便来索引当前的按钮,并跳转到相应的视图

//带参数的监听方法记得加"冒号"
[btn addTarget:self action:@selector(clickBtn:) forControlEvents:UIControlEventTouchUpInside];

//设置刚进入时,第一个按钮为选中状态
if (0 == i) {
btn.selected = YES;
self.selectedBtn = btn;  //设置该按钮为选中的按钮
}

}

}

- (void)clickBtn:(UIButton *)button {
//1.先将之前选中的按钮设置为未选中
self.selectedBtn.selected = NO;
//2.再将当前按钮设置为选中
button.selected = YES;
//3.最后把当前按钮赋值为之前选中的按钮
self.selectedBtn = button;

//4.跳转到相应的视图控制器. (通过selectIndex参数来设置选中了那个控制器)
self.selectedIndex = button.tag;
}

@end


----------------------------------------

我怀念的是我回不去的曾经

----------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: