美文网首页iOS项目
TabBar添加 小红点 (不显示未读消息数量)只是 红点

TabBar添加 小红点 (不显示未读消息数量)只是 红点

作者: 爱喝农药de清凉 | 来源:发表于2017-05-11 13:39 被阅读82次

转自:http://blog.csdn.net/u013531246/article/details/44460115

为 Tabbar 添加 类别 : HTBadge

.h文件

import <UIKit/UIKit.h>

@interface UITabBar (badge)

/显示小红点/

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

@end

.m文件

import "UITabBar+badge.h"

define TabbarItemNums 4.0 //tabbar的数量

@implementation UITabBar (badge)

  • (void)showBadgeOnItemIndex:(int)index{

    //移除之前的小红点
    [self removeBadgeOnItemIndex:index];

    //新建小红点
    UIView *badgeView = [[UIView alloc]init];
    badgeView.tag = 888 + index;
    badgeView.layer.cornerRadius = 5;
    badgeView.backgroundColor = [UIColor redColor];
    CGRect tabFrame = self.frame;

    //确定小红点的位置
    float percentX = (index +0.6) / TabbarItemNums;
    CGFloat x = ceilf(percentX * tabFrame.size.width);
    CGFloat y = ceilf(0.1 * tabFrame.size.height);
    badgeView.frame = CGRectMake(x, y, 10, 10);
    [self addSubview:badgeView];

}

  • (void)hideBadgeOnItemIndex:(int)index{

    //移除小红点
    [self removeBadgeOnItemIndex:index];

}

  • (void)removeBadgeOnItemIndex:(int)index{

    //按照tag值进行移除
    for (UIView *subView in self.subviews) {

      if (subView.tag == 888+index) {
    
          [subView removeFromSuperview];
    
      }
    

    }
    }

@end

调用:
//显示
[self.tabBarController.tabBar showBadgeOnItemIndex:2];

//隐藏
[self.tabBarController.tabBar hideBadgeOnItemIndex:2]

相关文章

网友评论

    本文标题:TabBar添加 小红点 (不显示未读消息数量)只是 红点

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