TabBarItem的Badge

不少時候咱們須要在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

相關文章
相關標籤/搜索