开源项目-TTGTagCollectionView

前言

这段时间做项目的时候,总是需要显示一些“标签”样式的内容,但是又找不到用的顺手的库,所以琢磨了几天,自己实现了出来,就有了这个库:TTGTagCollectionView。如果只需要显示文字标签的话,直接使用 TTGTextTagCollectionView ,需要自己定义标签的话,就用 TTGTagCollectionView ,效果如下: 

CocoaPods: pod "TTGTagCollectionView" 

Github地址: https://github.com/zekunyan/TTGTagCollectionView

只显示文字标签 - TTGTextTagCollectionView

基本使用

只显示文字标签的话,直接用 TTGTextTagCollectionView 类就可以了: 

TTGTextTagCollectionView *tagCollectionView = [[TTGTextTagCollectionView alloc] initWithFrame:CGRectMake(20, 20, 200, 200)];
[self.view addSubview:tagCollectionView];
[tagCollectionView addTags:@[@"TTG", @"Tag", @"collection", @"view"]];

接收点击事件 - 实现Delegate

如果想在标签被点击时得到通知,实现对应的Protocol即可,定义如下: 

@protocol TTGTextTagCollectionViewDelegate <NSObject>
@optional
- (void)textTagCollectionView:(TTGTextTagCollectionView *)textTagCollectionView didTapTag:(NSString *)tagText atIndex:(NSUInteger)index selected:(BOOL)selected;
@end

自定义文字标签样式

如果想对标签的样式做定制,可以设置以下属性: 

// 标签是否可以被选中
@property (assign, nonatomic) BOOL enableTagSelection;

// 字体
@property (strong, nonatomic) UIFont *tagTextFont;

// 未选中和选中时的文字颜色
@property (strong, nonatomic) UIColor *tagTextColor;
@property (strong, nonatomic) UIColor *tagSelectedTextColor;

// 未选中和选中时的标签背景颜色
@property (strong, nonatomic) UIColor *tagBackgroundColor;
@property (strong, nonatomic) UIColor *tagSelectedBackgroundColor;

// 圆角值
@property (assign, nonatomic) CGFloat tagCornerRadius;

// 边框
@property (assign, nonatomic) CGFloat tagBorderWidth;
@property (strong, nonatomic) UIColor *tagBorderColor;

// 标签宽高的扩展值,可以理解为padding
@property (assign, nonatomic) CGSize extraSpace;

增加、删除标签

// 增加一个标签
- (void)addTag:(NSString *)tag;

- (void)addTags:(NSArray <NSString *> *)tags;

/// 删除标签
- (void)removeTag:(NSString *)tag;

- (void)removeTagAtIndex:(NSUInteger)index;

- (void)removeAllTags;

在代码里控制标签的选中状态

- (void)setTagAtIndex:(NSUInteger)index selected:(BOOL)selected;

获取所有、选中、未选中标签

- (NSArray <NSString *> *)allTags;

- (NSArray <NSString *> *)allSelectedTags;

- (NSArray <NSString *> *)allNotSelectedTags;

显示自定义的标签控件View - TTGTagCollectionView

如果想自己定义标签View,如同时显示图像、文字、按钮,可以用 TTGTagCollectionView 类实现。 

基本要求 - 实现DataSource和Delegate

DataSource的定义如下: 

@protocol TTGTagCollectionViewDataSource <NSObject>
@required
- (NSUInteger)numberOfTagsInTagCollectionView:(TTGTagCollectionView *)tagCollectionView;

- (UIView *)tagCollectionView:(TTGTagCollectionView *)tagCollectionView tagViewForIndex:(NSUInteger)index;
@end

Delegate的定义如下: 

@protocol TTGTagCollectionViewDelegate <NSObject>
@required
- (CGSize)tagCollectionView:(TTGTagCollectionView *)tagCollectionView sizeForTagAtIndex:(NSUInteger)index;

@optional
- (void)tagCollectionView:(TTGTagCollectionView *)tagCollectionView didSelectTag:(UIView *)tagView atIndex:(NSUInteger)index;

- (void)tagCollectionView:(TTGTagCollectionView *)tagCollectionView updateContentHeight:(CGFloat)newContentHeight;
@end

跟UITableView的思路一致~

设置标签的行距、间隔

// 水平间隔
@property (assign, nonatomic) CGFloat horizontalSpacing;
// 行距
@property (assign, nonatomic) CGFloat verticalSpacing;

重新加载 - Reload

用 - (void)reload 方法重新加载所有标签。 

End

2015最后一天~新年快乐~ 

来自: http://tutuge.me/2015/12/31/TTGTagCollectionView/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值