iOS 未读消息角标 仿QQ拖拽 简单灵活 支持xib(源码)

Posted 张林峰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 未读消息角标 仿QQ拖拽 简单灵活 支持xib(源码)相关的知识,希望对你有一定的参考价值。

一、效果

技术分享图片

二、简单用法

超级简单,2行代码集成;xib可0代码集成,只需拖一个view关联LFBadge类即可

支持pod导入pod ‘LFKit/LFBadge‘

//一般view上加角标
_badge1 = [[LFBadge alloc] init];
[_badge1 addToTabBarItem:_view1];

//BarButtonItem上加角标
_badge2 = [[LFBadge alloc] init];
[_badge2 addToBarButtonItem:self.navigationItem.rightBarButtonItem];

//TabBarItem上加角标
_badge3 = [[LFBadge alloc] init];
[_badge3 addToTabBarItem:self.tabBarItem];

//赋值
//@"0"或者nil隐藏,@""显示红点,大于maxCount的数字字符串显示maxCount++,其他字符串就显示本来样子(你也可以显示new)
_badge1.count = @"1"

三、更多用法

1.拖拽清除

加了清除回调就有拖拽功能,不加就没有拖拽功能

 _badge1.clearBlock = ^{
        NSLog(@"清除未读消息角标");
    };

2.其他可定义的功能

具体见.h文件,有详细注释

typedef NS_ENUM(NSInteger, LFBadgeType) {
    LFBadgeType_Center,//Badge中心对准父视图右上角
    LFBadgeType_RightTop,//Badge右上角对准父视图右上角
    LFBadgeType_LeftBottom//Badge左下角对准父视图右上角
};

/**未读消息角标控件,支持xib和代码2种方式使用,支持拖拽清除*/

@interface LFBadge : UIView

@property (nonatomic, strong) UIColor *badgeCorlor;//角标颜色,默认红色
@property (nonatomic, strong) UILabel *lbText;//默认白字,字体14,角标大小自动适应字体大小
@property (nonatomic) BOOL needDisappearEffects;//是否需要消失特效,爆炸特效

//最大数字,不设置则默认99,要在count之前设置
@property (nonatomic, assign) NSInteger maxCount;

//@"0"或者nil隐藏,@""显示红点,大于maxCount的数字字符串显示maxCount++,其他字符串就显示本来样子(你也可以显示new)
@property (nonatomic, copy) NSString *count;

@property (nonatomic, assign) CGFloat redDotSize;//红点大小,不设置则默认8
@property (nonatomic, assign) CGFloat maxDistance;//大圆脱离小圆的最大距离

/**自行设置其他约束或者frame时下面2属性无效****/
@property (nonatomic) UIEdgeInsets edgeInsets;//对父视图右上角的偏移量,默认UIEdgeInsetsZero
@property (nonatomic) LFBadgeType type;

/**拖动清除回调(设置了这个才会有拖动效果)*/
@property (nonatomic, copy) void(^clearBlock)(void);


/**添加到父视图右上角(自动加约束)*/
- (void)addToView:(UIView*)superview;

/**将角标加到TabBarItem右上角(自动加约束)*/
- (void)addToTabBarItem:(UITabBarItem *)tabBarItem;

/**将角标加到BarButtonItem右上角(自动加约束)*/
- (void)addToBarButtonItem:(UIBarButtonItem *)barButtonItem;

/**清除角标约束(如果不想加到父视图右上角可调该方法,然后自行设置其他约束或者frame)*/
- (void)clearBadgeConstraint;

LFBadge只是LFKit的一个子库,源码地址https://github.com/zhanglinfeng/LFKit





以上是关于iOS 未读消息角标 仿QQ拖拽 简单灵活 支持xib(源码)的主要内容,如果未能解决你的问题,请参考以下文章

Android系统实现应用角标未读消息数原理

Uniapp 应用未读角标插件 Ba-Shortcut-Badge

Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示

android设置消息角标

Android Badge给应用添加角标

oppo手机怎么让软件图标右上角用红点显示未读消息数量?