标签:
很多时候我们需要在TabBarItem上添加一些红色的Badge用于提示用户这里出现了新内容,可以查看,最常见的莫过于微信的朋友圈,一般红圈Badge包含2种情况:
1)包含数字显示
2)不包含数字显示
默认的情况下TabBarItem中已经有了BadgeValue这个属性,添加Badge时只需为Item设置一个BadgeValue值就可以了,在1)的情况下表现非常良好,但是在2)的情况下如果设置BadgeValue为@""的话,那个红色Badge将会非常的大,显然不合适,那么我们需要做一些调整,如下:
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重新定义了一下。
标签:
原文地址:http://my.oschina.net/u/913344/blog/505055