不少时候咱们须要在TabBarItem上添加一些红色的Badge用于提示用户这里出现了新内容,能够查看,最多见的莫过于微信的朋友圈,通常红圈Badge包含2种状况: 微信
1)包含数字显示 post
2)不包含数字显示 spa
默认的状况下TabBarItem中已经有了BadgeValue这个属性,添加Badge时只需为Item设置一个BadgeValue值就能够了,在1)的状况下表现很是良好,可是在2)的状况下若是设置BadgeValue为@""的话,那个红色Badge将会很是的大,显然不合适,那么咱们须要作一些调整,以下: code
for (UIView *viewTab in tabBar.subviews) { for (UIView *subView in viewTab.subviews) { NSString *strClassName = [NSString stringWithUTF8String:object_getClassName(subView)]; if ([strClassName isEqualToString:@"UITabBarButtonBadge"] || // **** iOS 6 prior is UITabBarButtonBadge [strClassName isEqualToString:@"_UIBadgeView"]) { // **** iOS posterior is UITabBarButtonBadge CGRect badgeFrame = subView.frame; badgeFrame.size = CGSizeMake(8, 8); subView.frame = badgeFrame; subView.layer.masksToBounds = YES; subView.layer.cornerRadius = 4; subView.backgroundColor = [UIColor redColor]; return ; } } }
首先须要设置好须要设置Badge的Item,而后添加上面的代码便可,就是把原有的badgeview的frame从新定义了一下。 get