• 第九篇、UITabbar增加类别用来标红点


    1.系统中只有设置bage的方式,设置为nil也是为一个红点,但是很大,并不是我们需要的

    2.扩充标红点的方法 (常用于有新的动态提示标志)

     
    #import <UIKit/UIKit.h>  
      
    @interface UITabBar (XSDExt)  
      
    - (void)showBadgeOnItemIndex:(int)index;   ///<显示小红点  
      
    - (void)hideBadgeOnItemIndex:(int)index;  ///<隐藏小红点  
      
    @end 
    #import "UITabBar+XSDExt.h"  
      
    #define TabbarItemNums  3.0    //tabbar的数量 如果是5个设置为5  
      
    @implementation UITabBar (XSDExt)  
      
    //显示小红点  
    - (void)showBadgeOnItemIndex:(NSInteger)index{  
        //移除之前的小红点  
        [self removeBadgeOnItemIndex:index];  
          
        //新建小红点  
        UIView *badgeView = [[UIView alloc]init];  
        badgeView.tag = 888 + index;  
        badgeView.layer.cornerRadius = 5.0;//圆形  
        badgeView.backgroundColor = [UIColor redColor];//颜色:红色  
        CGRect tabFrame = self.frame;  
          
        //确定小红点的位置  
        CGFloat 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.0, 10.0);//圆形大小为10  
        badgeView.clipsToBounds = YES;  
        [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  
  • 相关阅读:
    5402.绝对差不超过限制的最长数组
    快乐数
    无重复字符的最长子串
    数组中数字出现的次数
    盛最多的水
    对角线遍历
    LeetCode第24场周赛
    CSS样式
    笔记
    开关电源设计
  • 原文地址:https://www.cnblogs.com/HJQ2016/p/5794088.html
Copyright © 2020-2023  润新知