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