自定义UITabBarContorller下面的ta…

来源:互联网 发布:android 源码下载编译 编辑:程序博客网 时间:2024/06/05 02:46
   //构建自定义TabBar
- (void)initCustomTabBar{
    
    QFAmountC*amountC = [QFAmountC new];
    QFTradeListC*tradeListC = [QFTradeListC new];
    QFMerchantC*merchantC = [QFMerchantC new];
    QFExpandC*expandC = [QFExpandC new];
    
   UINavigationController *amountNav = [[[UINavigationControlleralloc]initWithRootViewController:amountC]autorelease];
   UINavigationController *tradeListNav = [[[UINavigationControlleralloc]initWithRootViewController:tradeListC]autorelease];
   UINavigationController *merchantNav = [[[UINavigationControlleralloc]initWithRootViewController:merchantC]autorelease];
   UINavigationController *expandNav = [[[UINavigationControlleralloc]initWithRootViewController:expandC]autorelease];
       
   tabBarController.viewControllers = [NSArrayarrayWithObjects:amountNav,tradeListNav,merchantNav,expandNav,nil];
       
   tabBarController.tabBarImagesArray = [NSMutableArrayarrayWithObjects:
                                         [UIImage imageNamed:@"tab_card@2x"],
                                         [UIImage imageNamed:@"tab_trade@2x"],
                                         [UIImage imageNamed:@"tab_Profile@2x"],
                                         [UIImage imageNamed:@"tab_apps@2x"],
                                         nil];
   tabBarController.tabBarSelectedStateImagesArray = [NSMutableArrayarrayWithObjects:
                                                      [UIImage imageNamed:@"tab_card_sel@2x"],
                                                      [UIImage imageNamed:@"tab_trade_sel@2x"],
                                                      [UIImage imageNamed:@"tab_Profile_sel@2x"],
                                                      [UIImage imageNamed:@"tab_apps_sel@2x"],
                                                      nil];
   [tabBarController initCustomizeTabBar];
}


//初始化自定义TabBar
- (void)initCustomizeTabBar{
    [selfinitCustomizeTabBarImages];
    if(tabBarButtonsArray) {
       [self initCustomizeTabBarTitles];
    }
    [selfdidSelectTab:[tabBarButtonsArray objectAtIndex:0]];
}

//自定义的image
- (void)initCustomizeTabBarImages{
   
   tabBarButtonsArray = [[NSMutableArray alloc]initWithCapacity:0];
    inttabItemsCount = [self.viewControllers count];
   
    if(tabItemsCount!= [tabBarImagesArray count] || tabItemsCount !=[tabBarSelectedStateImagesArray count]) {
       NSLog(@"tabItemsCount!= [tabBarImagesArray count] || tabItemsCount!= [tabBarSelectedStateImagesArray count]");
       return;
    }
   
    floattabWidth = self.tabBar.frame.size.width/tabItemsCount;
    floattabHeight = self.tabBar.frame.size.height;
    floattabXCenter=tabWidth/2;
    floattabYCenter = self.tabBar.frame.size.height/2;
    for (inti=0;i < [self.viewControllers count]; i++) {
       UIButton *tabBarButton = [UIButtonbuttonWithType:UIButtonTypeCustom];
       tabBarButton.tag = i;
       [tabBarButton addTarget:self action:@selector(didSelectTab:)forControlEvents:UIControlEventTouchUpInside];
       UIImage *buttonImage = [tabBarImagesArray objectAtIndex:i];
       
       tabBarButton.autoresizingMask =UIViewAutoresizingFlexibleRightMargin |UIViewAutoresizingFlexibleLeftMargin |UIViewAutoresizingFlexibleBottomMargin |UIViewAutoresizingFlexibleTopMargin;
       tabBarButton.frame = CGRectMake(0.0, 0.0,tabWidth,tabHeight);
       
       
       [tabBarButton setImage:buttonImageforState:UIControlStateNormal];
       [tabBarButton setImage:buttonImageforState:UIControlStateSelected];
       [tabBarButton setImage:buttonImageforState:UIControlStateHighlighted];
       [tabBarButton setImage:buttonImageforState:UIControlStateSelected|UIControlStateHighlighted];

       tabBarButton.imageView.image = buttonImage;
       tabBarButton.selected = YES;
       tabBarButton.center = CGPointMake(tabXCenter, tabYCenter);
       tabXCenter += tabWidth;
       [tabBarButtonsArray addObject:tabBarButton];
       [self.tabBar addSubview:tabBarButton];
       
    }
     
}

//自定义名称
-(void)initCustomizeTabBarTitles{
   
   tabBarLabelsArray = [[NSMutableArray alloc]initWithCapacity:0];
   
    inttabItemsCount = [self.viewControllers count];
   
    if(tabItemsCount!= [tabBarImagesArray count] || tabItemsCount !=[tabBarSelectedStateImagesArray count]) {
       NSLog(@"tabItemsCount!= [tabBarImagesArray count] || tabItemsCount!= [tabBarSelectedStateImagesArray count]");
       return;
    }

//选择tab
- (void)didSelectTab:(id)sender
{
    UIButton*selectedButton = (UIButton *)sender;
    if(self.selectedIndex == selectedButton.tag) {
       [self postNotification:selectedButton.tag];
    }
   self.selectedIndex = selectedButton.tag;
    [selfdidselectTabAtIndex:selectedButton.tag];
}

//按索引切换
- (void)didselectTabAtIndex:(NSUInteger)selectedTabIndex
 
   self.selectedIndex = selectedTabIndex;
    for (inti=0; i<[tabBarButtonsArray count]; i++) {
       if (selectedTabIndex==i) {
           UILabel *tabBarLabel = [tabBarLabelsArray objectAtIndex:i];
           tabBarLabel.textColor = [UIColor whiteColor];
           continue;
       }
       UIImage *buttonImage = [tabBarImagesArray objectAtIndex:i];
       UIButton *button = [tabBarButtonsArray objectAtIndex:i];
       [button setImage:buttonImage forState:UIControlStateNormal];
       [button setImage:buttonImageforState:UIControlStateSelected];
       [button setImage:buttonImageforState:UIControlStateHighlighted];
       [button setImage:buttonImageforState:UIControlStateSelected|UIControlStateHighlighted];
       
       UILabel *tabBarLabel = [tabBarLabelsArray objectAtIndex:i];
       tabBarLabel.textColor = [UIColor blackColor];
       
    }
    UIButton*selectedButton = [tabBarButtonsArrayobjectAtIndex:selectedTabIndex];
    UIImage*buttonImage = [tabBarSelectedStateImagesArrayobjectAtIndex:selectedTabIndex];
   [selectedButton setImage:buttonImageforState:UIControlStateNormal];
   [selectedButton setImage:buttonImageforState:UIControlStateSelected];
   [selectedButton setImage:buttonImageforState:UIControlStateHighlighted];
   [selectedButton setImage:buttonImageforState:UIControlStateSelected|UIControlStateHighlighted];
}

   
    floattabWidth = self.tabBar.frame.size.width/tabItemsCount;
   
    floattabXCenter = tabWidth/2;
    floattabYCenter = self.tabBar.frame.size.height-7;
   
    for (inti=0;i < [self.viewControllers count]; i++) {
       UILabel *tabBarLabel = [[UILabel alloc]initWithFrame:CGRectMake(0.0, 0.0,tabWidth, 50)];
       tabBarLabel.text = [tabBarTitlesArray objectAtIndex:i];
       tabBarLabel.center = CGPointMake(tabXCenter, tabYCenter);
       tabBarLabel.backgroundColor = [UIColor clearColor];
       tabBarLabel.font = [UIFont fontWithName:@"HelveticaNeue-Bold"size:10];
       tabBarLabel.textAlignment = UITextAlignmentCenter;
       tabXCenter += tabWidth;
       [self.tabBar addSubview:tabBarLabel];
       [tabBarLabelsArray addObject:tabBarLabel];
       [tabBarLabel release];
    }
}

0 0
原创粉丝点击