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'
iOS 未读消息角标 仿QQ拖拽 简单灵活 支持xib(源码)的更多相关文章
- js仿QQ拖拽删除
原生js实现仿QQ拖拽删除交互,无需任何依赖. 项目演示请看这里, gitHub请移步这里. 由于源码很长,所以贴到最下面了. 效果截图如下: 核心思想呢,就是点击圆点的时候全屏覆盖个canvas,在 ...
- Android 高仿QQ滑动弹出菜单标记已读、未读消息
在上一篇博客<Android 高仿微信(QQ)滑动弹出编辑.删除菜单效果,增加下拉刷新功能>里,已经带着大家学习如何使用SwipeMenuListView这一开源库实现滑动列表弹出菜单,接 ...
- wing带你玩转自定义view系列(2) 简单模仿qq未读消息去除效果
上一篇介绍了贝塞尔曲线的简单应用 仿360内存清理效果 这一篇带来一个 两条贝塞尔曲线的应用 : 仿qq未读消息去除效果. 转载请注明出处:http://blog.csdn.net/wingicho ...
- [iOS微博项目 - 3.6] - 获取未读消息
github: https://github.com/hellovoidworld/HVWWeibo A.获取登陆用户未读消息 1.需求 获取所有未读消息,包括新微博.私信.@.转发.关注等 把未 ...
- Android BGABadgeView:新消息/未接来电/未读消息/新通知圆球红点提示(1)
Android BGABadgeView:新消息/未接来电/未读消息/新通知圆球红点提示(1) 现在很多的APP会有新消息/未接来电/未读消息/新通知圆球红点提示,典型的以微信.QQ新消息提示为 ...
- Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒
http://www.51itong.net/android-badgenumber-9789.html Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒 ...
- 【Python学习笔记】-APP图标显示未读消息数目
以小米手机系统为例,当安装的某个APP有未读消息时,就会在该APP图标的右上角显示未读消息的数目.本文主要解说怎样用Python语言实现图标显示未读消息的数目.首先,还是要用到Python中PIL库, ...
- 桌面图标未读消息(小米,sony,三星手机)
新消息来了,在桌面的Laucher图标上显示新消息数 /** * 应用桌面图标未读消息显示工具类 * 只支持 小米,三星和索尼 */ public class BadgeUtil { final st ...
- 未读消息(小红点),前端与 RabbitMQ实时消息推送实践,贼简单~
前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢. 之前在 <springboot ...
随机推荐
- 【Python问题解决】关于解决python3.x无法使用PIL库的解决方法
因为PIL库目前只更新到python2.x,故python3.x直接安装PIL库会找不到版本.但是python3.x有一个新的库,可以提供和PIL差不多的功能,也就是pillow库. 本人使用的是py ...
- 如何才可以干掉Cortana进程,开机不启动
直接禁用即可WIN——设置——隐私——语音.墨迹书写和键入——停止收集有关我的信息——关闭
- [Leetcode Week17]Copy List with Random Pointer
Copy List with Random Pointer 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/copy-list-with-random- ...
- Linux 入门记录:九、Linux 文件系统挂载管理
一.挂载操作 磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用. Windows 或 Mac 系统会进行自动挂载,一旦创建好文件系统后会自动挂载到系统上,Windows 上称之为 C 盘.D ...
- selenium 点击浏览器按钮
利用以下的方法,selenium 也可以模拟点击各种浏览器按钮:browser.back()点击“返回”按钮.browser.forward()点击“前进”按钮.browser.refresh()点击 ...
- 基数排序c++实现
基数排序:是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较.由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数.但在 ...
- 升级OS10.11系统后 Xcode6.4的变化少了个按钮 could not launch “Xcode” Xcode 插件安装
升级OS10.11系统后 Xcode6.4的变化少了个按钮 could not launch “Xcode” Xcode 插件安装 A: 升级10.11后Xcode 左上角模拟器选择菜单不在了 ...
- C入门之一
1.stdio.h不要写错成studio.h 2. #include <stdio.h> int main() { /* 我的第一个 C 程序 */ printf("Hello, ...
- python基础(4)---解释器、编码、字符拼接
1.Python种类 1.1Cpython Python官方版本,使用C语言实现,运行机制:先编译.py(源码文件)->pyc(字节码文件),最终执行时先将字节码转换成机器码,然后交给cpu执行 ...
- 五:ZooKeeper的集群命令客户端的链接和命令操作的使用
一:zookeeper客户端链接[1]进入zookeeper的安装目录的bin目录下 # cd /opt/zookeeper/bin[2]敲击链接客户端的命令(zkCli.sh) ...