欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自定义标签管理RWAutoTagView

程序员文章站 2022-05-30 20:25:22
...

组件 自定义 标签 动态 RWAutoTagView

RWAutoTagView 简介

RWAutoTagView是一个展示自定义标签的类,可以展示纯文本纯图片图文结合(图片在左、图片在右、图片在上、图片在下)三种样式的标签。可单独样式、混合样式展示,也可动态多行、单个标签一行展示。让你随心所欲使用。

一、 如何使用RWAutoTagView

  • 使用CocoaPods导入 pod 'RWAutoTagView'
  • 下载项目(含Demo)点击下载,把RWAutoTagView文件夹拖入项目中。

二、RWAutoTagView组件介绍

  • RWAutoTagView 一个标签集合管理控件
  • RWAutoTagButton 单个标签对象
  • RWAutoTag 数据Model 标签对应的Model
  • NSBundle+RWAutoTag、RWAutoTag.bundle 资源文件
  • RWAutoTagView、一个标签集合管理控件

    使用RWAutoTagViewDataSourceRWAutoTagViewDelegate来对标签创建和管理

    • 1. 默认排序 – 已设置数据为准
      设置autoSortStyle属性值为 RWAutoTagViewAutoSortStyleNormal
      自定义标签管理RWAutoTagView
    • 2. 升序排序 – 按标签宽度排序(长到短)
      设置autoSortStyle属性值为 RWAutoTagViewAutoSortStyleDescending
      自定义标签管理RWAutoTagView
    • 3. 降序排序 – 按标签宽度排序(短到长)
      设置autoSortStyle属性值为 RWAutoTagViewAutoSortStyleAscending
      自定义标签管理RWAutoTagView
  • RWAutoTagButton单个标签对象

    • 1.纯文本
      自定义标签管理RWAutoTagView
    • 2.纯图片
      自定义标签管理RWAutoTagView
    • 3.图文结合 – 图在左边
      自定义标签管理RWAutoTagView
  • RWAutoTag

       RWAutoTag是数据Model,RWAutoTagButton可以使用RWAutoTag对象来初始化。
    
    初始化方法
    + (instancetype)autoTagWithText:(NSString *)text;
    + (instancetype)autoTagWithAttributedText:(NSAttributedString *)attributedText;
    + (instancetype)autoTagWithTagStyle:(RWAutoTagStyle)style;
    
  • NSBundle+RWAutoTag

      是控件本身资源文件管理,里面存在一张默认图片
    
    .h文件中
    @interface NSBundle (RWAutoTag)
    
    + (instancetype)rw_autoTagBundle;/* 获取bundle */
    + (UIImage *)rw_autotagImage;/* 获取默认图片 */
    
    @end
    
    
    .m文件中
    @implementation NSBundle (RWAutoTag)
    
    + (instancetype)rw_autoTagBundle {
    
    static NSBundle *autoTagBundle = nil;
       if (autoTagBundle == nil) {
           // 这里不使用mainBundle是为了适配pod 1.x和0.x
           autoTagBundle = [NSBundle bundleWithPath:[[NSBundle bundleForClass:[RWAutoTagButton class]] pathForResource:@"RWAutoTag" ofType:@"bundle"]];
       }
       return autoTagBundle;
    }
    
    + (UIImage *)rw_autotagImage {
    static UIImage *autotagImage = nil;
       if (autotagImage == nil) {
    autotagImage = [UIImage imageWithContentsOfFile:[[self rw_autoTagBundle] pathForResource:@"RWAutoTag" ofType:@"png"]];
       }
       return autotagImage;
    }
    @end
    

Demo下载Git地址