iOS 未读消息角标 仿QQ拖拽 简单灵活 支持xib(源码)
一、效果
二、简单用法
超级简单,2行代码集成;xib可0代码集成,只需拖一个view关联LFBadge类即可
//一般view上加角标 _badge1 = [[LFBadge alloc] init]; [_badge1 addToView:_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
只需LFBadge的pod 'LFKit/Component/LFBadge'
需要LFKit中所有自定义控件的pod 'LFKit/Component'
需要总库的 pod 'LFKit'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架