ios 消息按钮添加角标显示

   在做聊天时,其它界面的消息按钮展示,会遇到显示未读消息条数的情况.

   今天整理下,处理消息角标设置方法.

   直接上代码.

   创建一个类 BageButton继承UIButton类,并拓展这个按钮的属性.

   .h文件:

 

//设置角标数字font

 

#define SCBadgeNumberFontSize [UIFont systemFontOfSize:8]

 

 

@interface JKBadgeView : UIButton

 

/**

 *  badgeView上显示的数字

 */

@property (nonatomic, copy) NSString *badgeValue;

 

@end

 

   .m文件:

 

 

- (instancetype)initWithFrame:(CGRect)frame {

    

    self = [super initWithFrame:frame];

    

    if (self) {

        // 不允许点击

        self.userInteractionEnabled = NO;

        

        // 设置字体

        self.titleLabel.font = SCBadgeNumberFontSize;

                

        // 设置居右

        self.titleLabel.textAlignment = NSTextAlignmentRight;

        

        // 字体颜色

        [self setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

    }

    

    return self;

}

 

- (void)setBadgeValue:(NSString *)badgeValue

{

    // 设置属性

    _badgeValue = badgeValue;

    

    // 设置badgeView内容

    [self setBadgeViewWithbadgeValue:badgeValue];

}

 

- (void)setBadgeViewWithbadgeValue:(NSString *)badgeValue {

    // 设置文字内容

    [self setTitle:badgeValue forState:UIControlStateNormal];

    

    // 判断是否有内容,设置隐藏属性

    if (badgeValue.length == 0 ||

        [badgeValue isEqualToString:@"0"]||[JK_Helper isStringEmpty:badgeValue]) {

        // 数值内容为空或数值为0,则隐藏

        self.hidden = YES;

    }

    else {

        self.hidden = NO;

    }

    

    long badgeNumber = [badgeValue longLongValue];

    // 如果文字尺寸大于控件宽度

    if (badgeNumber > 9 && badgeNumber < 100) {

        // 显示中等大小图片

        [self setBackgroundImage:[UIImage imageNamed:@""]

                        forState:UIControlStateNormal];

    }

    else if (badgeNumber > 99) {

        // 设置文字内容

        [self setTitle:@"99+" forState:UIControlStateNormal];

        // 显示内容和大红点背景

        [self setBackgroundImage:[UIImage imageNamed:@""]

                        forState:UIControlStateNormal];

        

    } else {

        // 设置图片

        //badge_cart_icon3

        [self setBackgroundImage:[UIImage imageNamed:@""]

                        forState:UIControlStateNormal];

        

    }

    

    // 尺寸自适应

    [self sizeToFit];

}

 

 

 

 

@end

 

   在需要使用角标按钮的地方,直接用BageButton 来创建这个按钮就ok了.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值