iOS开发 在storyboard中拖的UITabBarController,设置选中时的图片和字体颜色

来源:互联网 发布:磁盘擦除软件 编辑:程序博客网 时间:2024/05/16 15:06

在storyboard中拖的UITabBarController,设置选中时的图片和字体颜色

/** *  设置tabbar选中时的图片和字体颜色(storyboard情况下) * *  @param tabBarController tabBarController */- (void)setTabbarSelectImage:(UITabBarController *)tabBarController  {        // 方法一:    NSArray *itemImageArray = @[@"首页new选中",@"运单管理new选中",@"我的new选中"];    NSArray *itemArray = tabBarController.tabBar.items;    for (NSInteger i = 0; i < itemArray.count; i++) {        UITabBarItem *item = itemArray[i];        UIImage *image = IMAGENAMED(itemImageArray[i]);        [item setTitleTextAttributes:@{NSForegroundColorAttributeName:UIColorFrom16RGB(0x66B2D4)} forState:UIControlStateSelected];        item.selectedImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];    }        // 方法二:    for (UITabBarItem *item in tabBarController.tabBar.items) {        NSString *selectedImageStr;        if (item.tag == 1) {            selectedImageStr = @"首页new选中";        } else if (item.tag == 2) {            selectedImageStr = @"运单管理new选中";        } else {            selectedImageStr = @"我的new选中";        }        UIImage *image = IMAGENAMED(selectedImageStr);        [item setTitleTextAttributes:@{NSForegroundColorAttributeName:UIColorFrom16RGB(0x66B2D4)} forState:UIControlStateSelected];        item.selectedImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];    }}
调用:直接在tabBarController的第一个ViewController的viewDidLoad调用即可,传入当前的tabBarController

例如 :[ self setTabbarSelectImage:self.tabBarController];
注意的是方法二,需要你自己去storyboard中设置每个item的tag值,另外附上方法中用到的宏定义;

// 根据16位RBG值转换成颜色,格式:UIColorFrom16RGB(0xFF0000)#define UIColorFrom16RGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]// 根据10位RBG值转换成颜色, 格式:KLColorFrom10RBG(255,255,255)#define UIColorFrom10RGB(RED, GREEN, BLUE) [UIColor colorWithRed:RED/255.0 green:GREEN/255.0 blue:BLUE/255.0 alpha:1.0]

//定义UIImage对象#define IMAGENAMED(_pointer) [UIImage imageNamed:_pointer]


0 0
原创粉丝点击