iOS tabbar 角標(biāo)

#import "UITabBar+badge.h"

#import "ContantHead.h"

#define TabbarBadge_Nums 5.0

@implementation UITabBar (badge)

//顯示小紅點(diǎn)

- (void)showBadgeOnItemIndex:(int)index withNum:(NSInteger)badgeNum{

//移除之前的小紅點(diǎn)

[self removeBadgeOnItemIndex:index];

//新建小紅點(diǎn)

UILabel *labNum = [[UILabel alloc]init];

labNum.tag = 888 + index;

labNum.layer.masksToBounds = YES;

labNum.layer.cornerRadius = 20/2;//圓形

labNum.backgroundColor = [UIColor redColor];//顏色:紅色

CGRect tabFrame = self.frame;

//確定小紅點(diǎn)的位置

float percentX = (index +0.6) / TabbarBadge_Nums;

CGFloat x = ceilf(percentX * tabFrame.size.width);

CGFloat y = ceilf(0.1 * tabFrame.size.height)-5;

labNum.frame = CGRectMake(x, y, 20, 20);//圓形大小為10

//-30*screenWidth/375

labNum.text = [NSString stringWithFormat:@"%ld",badgeNum];

labNum.textColor = [UIColor whiteColor];

labNum.adjustsFontSizeToFitWidth = YES;

labNum.textAlignment = NSTextAlignmentCenter;

[self addSubview:labNum];

}

//隱藏小紅點(diǎn)

- (void)hideBadgeOnItemIndex:(NSInteger)index{

//移除小紅點(diǎn)

[self removeBadgeOnItemIndex:index];

}

//移除小紅點(diǎn)

- (void)removeBadgeOnItemIndex:(NSInteger)index{

//按照tag值進(jìn)行移除

for (UIView *subView in self.subviews) {

if (subView.tag == 888+index) {

[subView removeFromSuperview];

}

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容