iOS TabBarItem设置红点(未读消息)
实现原理:
其实是自定义一个view,将view添加到UITabBar上面,也可以是一个按钮,设置背景图片,和label。
废话少说直接上代码
搞一个UITabBar的分类
#import@interfaceUITabBar(Extension) -(void)showBadgeOnItmIndex:(int)index; -(void)hideBadgeOnItemIndex:(int)index; @end
#import"UITabBar+Extension.h"
#defineTabbarItemNums5.0
@implementationUITabBar(badge)
//显示红点
-(void)showBadgeOnItmIndex:(int)index{
[selfremoveBadgeOnItemIndex:index];
//新建小红点
UIView*bview=[[UIViewalloc]init];
bview.tag=888+index;
bview.layer.cornerRadius=5;
bview.clipsToBounds=YES;
bview.backgroundColor=[UIColorredColor];
CGRecttabFram=self.frame;
floatpercentX=(index+0.6)/TabbarItemNums;
CGFloatx=ceilf(percentX*tabFram.size.width);
CGFloaty=ceilf(0.1*tabFram.size.height);
bview.frame=CGRectMake(x,y,10,10);
[selfaddSubview:bview];
[selfbringSubviewToFront:bview];
}
//隐藏红点
-(void)hideBadgeOnItemIndex:(int)index{
[selfremoveBadgeOnItemIndex:index];
}
//移除控件
-(void)removeBadgeOnItemIndex:(int)index{
for(UIView*subViewinself.subviews){
if(subView.tag==888+index){
[subViewremoveFromSuperview];
}
}
}
@end
最后在子控制器调用就可以啦
[self.tabBarController.tabBarshowBadgeOnItmIndex:4];
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!