zoukankan      html  css  js  c++  java
  • 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'

  • 相关阅读:
    python3
    hive与hbase集成
    spark读取hbase形成RDD,存入hive或者spark_sql分析
    spark机器学习笔记01
    CodeForces 55D Beautiful numbers
    NOIP 2016 D2T2 蚯蚓](思维)
    SCOI 2009 围豆豆(状压DP)
    POJ 1852 Ants(贪心)
    STA树的深度(树型DP)
    HDU 5963 朋友 (找规律,思维)
  • 原文地址:https://www.cnblogs.com/zhanglinfeng/p/8093872.html
Copyright © 2011-2022 走看看