码迷,mamicode.com
首页 > 其他好文 > 详细

TabBarItem的Badge

时间:2015-09-11 19:29:52      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

很多时候我们需要在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重新定义了一下。

TabBarItem的Badge

标签:

原文地址:http://my.oschina.net/u/913344/blog/505055

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!