自定义UITableBar 的按钮,以及下面的标题

  1 - (void)viewDidLoad
  2 {
  3     @autoreleasepool
  4     {
  5         FMRecentlyUpdateViewController *rectUploadVC = [[FMRecentlyUpdateViewController alloc]init];
  6         NSArray *array = @[
  7                            
  8                            [[UIViewController alloc]init],
  9                            @"toolbar_talk",
 10                            @"XX",
 11                            @"toolbar_talk_hover",
 12                            
 13                            [[UIViewController alloc] init],
 14                            @"toolbar_contacts",
 15                            @"XX",
 16                            @"toolbar_contacts_hover",
 17                            
 18                            XX,
 19                            @"toolbar_albums",
 20                            @"XX",
 21                            @"toolbar_albums_hover",
 22                            
 23                            [[UIViewController alloc] init],
 24                            @"toolbar_setting",
 25                            @"XX",
 26                            @"toolbar_setting_hover"
 27                            ];
 28         
 29         self.iosUnder5 = [UIDevice currentDevice].systemVersion.doubleValue < 5.0;
 30         
 31         //选择卡的样式
 32         NSDictionary *attribute = nil;
 33         //选择时样式
 34         NSDictionary *selectedAttribute = nil;
 35         //选择时颜色
 36         UIColor *selectedColor = [UIColor colorWithUInt:0x4e88c2];
 37         //正常时颜色
 38         UIColor *textColor     = [UIColor colorWithUInt:0x6f819b];
 39         
 40         CGRect rect            = self.tabBar.bounds;
 41         rect.size.width        = rect.size.width * 3 / array.count;
 42         
 43         //选卡样背景
 44         if(self.iosUnder5)
 45         {
 46             self.tabBar.layer.contents = (id)[UIImage imageWithColor:[UIColor colorWithUInt:0xf5f5f5]];
 47         }
 48         else
 49         {
 50             UIImage *image = [UIImage imageWithColor:[UIColor colorWithUInt:0xf5f5f5]];
 51             self.tabBar.backgroundImage = image;
 52             
 53             image = [UIImage imageWithColor:[UIColor clearColor]];
 54             self.tabBar.selectionIndicatorImage = image;
 55             
 56             attribute         = @{UITextAttributeTextColor : textColor    };
 57             selectedAttribute = @{UITextAttributeTextColor : selectedColor};
 58         }
 59         
 60         NSMutableArray *items = [NSMutableArray arrayWithCapacity:array.count / 3];
 61         
 62         for(NSInteger i = 0; i < array.count; i += 4)
 63         {
 64             UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:array[i]];
 65             [nav.navigationBar wojiaStyle];
 66             items[items.count] = nav;
 67             
 68             UIImage *image         = [UIImage imageWithResource:array[i + 1]];
 69             UIImage *selectedImage = [UIImage imageWithResource:array[i + 3]];
 70             
 71             if(self.iosUnder5)
 72             {
 73                 nav.tabBarItem.enabled = NO;
 74                 nav.tabBarItem.image = nil;
 75                 UIButton *button = [[UIButton alloc]initWithFrame:rect];
 76                 rect.origin.x   += rect.size.width;
 77                 button.tag       = i / 3 + kBarButtonStartTag;
 78                 button.selected  = YES;
 79                 button.adjustsImageWhenHighlighted = NO;
 80                 button.titleLabel.font = FontWithSize(10);
 81                 button.titleLabel.shadowOffset = CGSizeMake(1, 1);
 82                 [button setTitle:array[i + 2]
 83                         forState:UIControlStateNormal];
 84                 [button setTitleColor:[UIColor colorWithUInt:0x6f8f9b]
 85                              forState:UIControlStateNormal];
 86                 [button setImage:image
 87                         forState:UIControlStateSelected];
 88                 [button setImage:selectedImage
 89                         forState:UIControlStateNormal];
 90                 [button setTitleColor:textColor
 91                              forState:UIControlStateSelected];
 92                 [button setTitleColor:selectedColor
 93                              forState:UIControlStateNormal];
 94                 //绑定事件
 95                 [button addTarget:self
 96                            action:@selector(tabBarButtonWillSelected:)
 97                  forControlEvents:UIControlEventTouchDown];
 98                 [self.tabBar addSubview:button];
 99                 
100                 //文本尺寸
101                 CGSize textSize = [button.currentTitle sizeWithFont:button.titleLabel.font];
102                 button.imageEdgeInsets = UIEdgeInsetsMake(-6, textSize.width, 0, 0);
103                 button.titleEdgeInsets = UIEdgeInsetsMake(image.size.height + 3, -image.size.width , 0, 0);
104                 
105             }
106             else
107             {
108                 nav.tabBarItem.image  = image;
109                 nav.tabBarItem.title  = array[i + 2];
110                 nav.tabBarItem.titlePositionAdjustment = UIOffsetMake(0, -2);
111                 [nav.tabBarItem setFinishedSelectedImage:selectedImage
112                              withFinishedUnselectedImage:image];
113                 [nav.tabBarItem setTitleTextAttributes:attribute
114                                               forState:UIControlStateNormal];
115                 [nav.tabBarItem setTitleTextAttributes:selectedAttribute
116                                               forState:UIControlStateSelected];
117 #ifdef __IPHONE_7_0
118                 nav.tabBarItem.selectedImage = selectedImage;
119 #endif
120             }
121         }
122         
123         self.viewControllers = items;
124       
125         
126         self.selectedIndex = 0;
127     
128         [super viewDidLoad];
129     }

 

posted @ 2013-12-06 11:01  话题  阅读(952)  评论(0编辑  收藏  举报