设置TabBar的Item选中后的背景色

最近看到一个选中tabbar的item后改变其背景色的app,结合资料,也尝试了看看,以下为实现方式:

我们要的效果

实现方法:

  • 在自定义的UITabbarController中的init方法里加上这两句代码:
        CGSize indicatorImageSize = CGSizeMake(self.tabBar.frame.size.width / self.viewControllers.count, self.tabBar.frame.size.height);
        self.tabBar.selectionIndicatorImage = [self drawTabBarItemBackgroundColorImageWithSize:indicatorImageSize];
  • drawTabBarItemBackgroundColorImageWithSize:方法实现如下:
- (UIImage*)drawTabBarItemBackgroundColorImageWithSize:(CGSize)size
{
    UIGraphicsBeginImageContext(size);
    CGContextRef ref = UIGraphicsGetCurrentContext();
    
    CGContextSetRGBFillColor(ref, 6 / 255.0, 173 / 255.0, 114 / 255.0, 1.0);
    CGContextFillRect(ref, CGRectMake(0, 0, size.width, size.height));
    
    UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    return image;
}
实现效果如图

你可能感兴趣的:(设置TabBar的Item选中后的背景色)