您的位置:首页 > 移动开发 > IOS开发

ios 消息按钮添加角标显示

2017-11-22 13:25 375 查看
   在做聊天时,其它界面的消息按钮展示,会遇到显示未读消息条数的情况.

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

   直接上代码.

   创建一个类 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了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios开发 ios