1. 程式人生 > >iOS 未讀消息角標 仿QQ拖拽 簡單靈活 支持xib(源碼)

iOS 未讀消息角標 仿QQ拖拽 簡單靈活 支持xib(源碼)

float 簡單用法 賦值 sta navi 適應 bool isa class

一、效果

技術分享圖片

二、簡單用法

超級簡單,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(源碼)