- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; NSMutableArray *viewContrs=[[NSMutableArray alloc]init]; for (int i=0; i<5; i++) { UIViewController *viewContr=[[UIViewController alloc]init]; viewContr.view.backgroundColor=[UIColor colorWithRed:i*0.2 green:i*0.2 blue:0.5 alpha:0.8]; [viewContrs addObject:viewContr]; } //创建标签控制器 tabBarViewContr=[[UITabBarController alloc]init]; tabBarViewContr.viewControllers=viewContrs; //把图片存入5个对象中再存入数组中 NSMutableArray *items=[[NSMutableArray alloc]init]; for (int i=0; i<5; i++) { Items *item=[[Items alloc]init]; NSString *str=[NSString stringWithFormat:@"%d.jpg",i+1]; [item setImage:[UIImage imageNamed:str] title:str]; [items addObject:item]; } //自定义的tabBar TabBar *tabBar1=[[TabBar alloc]initWithFrame:tabBarViewContr.tabBar.bounds]; tabBar1.itemArray=items; // tabBar1.delegate=self; tabBar1.block=^(TabBar *sender,NSInteger tag){ // [self tabBar:sender didTag:tag]; tabBarViewContr.selectedIndex=tag; }; // tabBarViewContr.tabBar.hidden=YES; [tabBarViewContr.tabBar addSubview:tabBar1]; self.window.rootViewController=tabBarViewContr; return YES; } 自定义的TabBar实现文件
- (void)setItemArray:(NSArray *)items { CGFloat width=self.frame.size.width/items.count; for (int i=0; i<items.count; i++) { Items *item=[items objectAtIndex:i]; UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom]; btn.frame=CGRectMake(i*width, 0, width, self.frame.size.height-15); [btn addTarget:self action:@selector(didClicked:) forControlEvents:UIControlEventTouchUpInside]; btn.tag=i; [btn setImage:item.image forState:UIControlStateNormal]; [self addSubview:btn]; //显示文字 UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(i*width, self.frame.size.height-15, width, 15)]; label.text=item.title; label.textAlignment=NSTextAlignmentCenter; [self addSubview:label]; } }
- (void)didClicked:(UIButton *)sender { if (_delegate&&[_delegate respondsToSelector:@selector(tabBar:didTag:)]) { [_delegate tabBar:self didTag:sender.tag]; } _block(self,sender.tag); }
tabBar用block实现自定义,布布扣,bubuko.com
时间: 2024-10-16 02:38:01