美文网首页
UITabBar上显示小红点

UITabBar上显示小红点

作者: fancy啊fancy | 来源:发表于2018-04-02 14:29 被阅读0次

    1.系统自带方法

    [item setBadgeValue:@" "];//显示不带数字的小红点," "中间为空格 这样设置出来的小红点太大了,超级不好看

    2.使用catgory,扩展UITabbar

    .h文件

    #import

    @interfaceUITabBar (badge)

    - (void)showBadgeOnItemIndex:(int)index;  //显示小红点

    - (void)hideBadgeOnItemIndex:(int)index;//隐藏小红点 

    @end

    .m文件

    #import "UITabBar+badge.h"

    #define TabbarItemNums4.0//tabbar的数量,根据情况设置

    @implementationUITabBar (badge)

    //显示小红点

    - (void)showBadgeOnItemIndex:(int)index{

        //移除之前的小红点

        [self removeBadgeOnItemIndex:index];

        //新建小红点

        UIView*badgeView = [[UIViewalloc]init];

        badgeView.tag=888+ index;

        badgeView.layer.cornerRadius=5;//圆形

        badgeView.backgroundColor = [UIColor redColor];//颜色:红色

        CGRecttabFrame =self.frame;

        //确定小红点的位置

        floatpercentX = (index +0.6) /TabbarItemNums;

        CGFloatx =ceilf(percentX * tabFrame.size.width);

        CGFloaty =ceilf(0.1* tabFrame.size.height);

        badgeView.frame=CGRectMake(x, y,10,10);//圆形大小为10

        [selfaddSubview:badgeView];

    }

    //隐藏小红点

    - (void)hideBadgeOnItemIndex:(int)index{

        //移除小红点

        [self removeBadgeOnItemIndex:index];

    }

    //移除小红点

    - (void)removeBadgeOnItemIndex:(int)index{

        //按照tag值进行移除

        for(UIView*subViewinself.subviews) {

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

                [subViewremoveFromSuperview];

            }

        }

    }

    @end

    使用: (1).导入头文件

    (2). //显示  

    [self.tabBarController.tabBarshowBadgeOnItemIndex:1];  

    //隐藏  

    [self.tabBarController.tabBarhideBadgeOnItemIndex:1];   

    相关文章

      网友评论

          本文标题:UITabBar上显示小红点

          本文链接:https://www.haomeiwen.com/subject/blxxhftx.html