一、效果

二、简单用法

超级简单,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'

iOS 未读消息角标 仿QQ拖拽 简单灵活 支持xib(源码)的更多相关文章

  1. js仿QQ拖拽删除

    原生js实现仿QQ拖拽删除交互,无需任何依赖. 项目演示请看这里, gitHub请移步这里. 由于源码很长,所以贴到最下面了. 效果截图如下: 核心思想呢,就是点击圆点的时候全屏覆盖个canvas,在 ...

  2. Android 高仿QQ滑动弹出菜单标记已读、未读消息

    在上一篇博客<Android 高仿微信(QQ)滑动弹出编辑.删除菜单效果,增加下拉刷新功能>里,已经带着大家学习如何使用SwipeMenuListView这一开源库实现滑动列表弹出菜单,接 ...

  3. wing带你玩转自定义view系列(2) 简单模仿qq未读消息去除效果

    上一篇介绍了贝塞尔曲线的简单应用 仿360内存清理效果 这一篇带来一个  两条贝塞尔曲线的应用 : 仿qq未读消息去除效果. 转载请注明出处:http://blog.csdn.net/wingicho ...

  4. [iOS微博项目 - 3.6] - 获取未读消息

    github: https://github.com/hellovoidworld/HVWWeibo   A.获取登陆用户未读消息 1.需求 获取所有未读消息,包括新微博.私信.@.转发.关注等 把未 ...

  5. Android BGABadgeView:新消息/未接来电/未读消息/新通知圆球红点提示(1)

     Android BGABadgeView:新消息/未接来电/未读消息/新通知圆球红点提示(1) 现在很多的APP会有新消息/未接来电/未读消息/新通知圆球红点提示,典型的以微信.QQ新消息提示为 ...

  6. Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒

    http://www.51itong.net/android-badgenumber-9789.html Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒 ...

  7. 【Python学习笔记】-APP图标显示未读消息数目

    以小米手机系统为例,当安装的某个APP有未读消息时,就会在该APP图标的右上角显示未读消息的数目.本文主要解说怎样用Python语言实现图标显示未读消息的数目.首先,还是要用到Python中PIL库, ...

  8. 桌面图标未读消息(小米,sony,三星手机)

    新消息来了,在桌面的Laucher图标上显示新消息数 /** * 应用桌面图标未读消息显示工具类 * 只支持 小米,三星和索尼 */ public class BadgeUtil { final st ...

  9. 未读消息(小红点),前端与 RabbitMQ实时消息推送实践,贼简单~

    前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢. 之前在 <springboot ...

随机推荐

  1. 64_l5

    libsmartcols-2.29.1-2.fc26.x86_64.rpm 13-Feb-2017 07:04 150590 libsmartcols-devel-2.29.1-2.fc26.i686 ...

  2. GitHub创建项目入门学习

    第一次创建git项目注意事项还是挺多了,这里就写个操作步骤,方便以后查看. 网页部分 1.打开自己的主页,点击“New repository”创建远程仓库. 2.填写信息 本地部分 前提: 下载git ...

  3. 【hihocoder】sam1-基本概念

    这题有毒…… 原本只是想复习下sam,于是写…… 后来发现自己傻了不知道怎么维护endpos…… 一气之下直接kmp拉倒,mdzz UPD:现在我好像会维护endpos了…… #include< ...

  4. 一个朋友 js图表开发问题 用 c和 js 解决

    引言            不求知道一切, 只求发现一件 -- 乔治·西蒙·欧姆 附注:那些存在于梦幻中的事迹,那些儿时梦中的人物,每每看起,都觉得 .哎 .... 岁月 ... 一直在努力 ...  ...

  5. HTML5API(4)

    十三.服务器推送 服务器主动向客户端推送信息 传统的HTTP协议传输,服务器是被动相应客户端的请求 1.解决方案 ajax轮询.ajax长轮询 Server-Send-Event WebSocket ...

  6. 数据库简述(以MySQL为例)

    一.数据库中的概念 1.数据库是用户存放数据.访问数据.操作数据的存储仓库,用户的各种数据被有组织地存放在数据库中.可以随时被有权限的用户查询.统计.添加.删除和修改.可以说,数据库是长期存储在计算机 ...

  7. 浮动的div无论窗口大小变化都能居中显示的js

    当div是浮动的时候浏览器窗口发生变化的时候不能居中显示(因为浮动的时候一般设定的有left或者right值) 可以先用jquery获取外围的div随浏览器变化而变化的宽度(加上监听事件) 之后再获取 ...

  8. 【python】pymongo中正则查询时的转义问题

    在查询mongo时用到了正则查询 设字符串为   str = '/ab/cd.ef?g=' 直接用正则查询没有匹配. collection.find({"re":{'$regex' ...

  9. linux命令(50):top命令

    TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中C ...

  10. “无法识别的配置节system.webServer”解决办法

    在Winsows 2008 Server 上安装asp.net 1.1 的应用程序,在启用默认文档或者浏览目录时会向 web.config 文件添加 <system.webServer> ...