用于以分词形式显示某个对象的多个标签,比如:

用法

将 TagsView.h/.m 文件拷贝到你的项目文件夹,在需要用到该控件的地方导入 TagsView.h 头文件。

IB 中的工作

拖一个 UIView 到故事板中,设置 UIView 宽度,高度随意(高度会自动计算)。将 Class 改成 TagsView。你会看到故事板变成这个样子:

可能效果不是你想要的,没关系,我们会在运行时改变它。

然后用 Assistant 编辑器为这个控件创建一个 IBOutlet 连接:

@property (weak, nonatomic) IBOutlet TagsView *tagsView;

在 ViewController 中

在 viewDidLoad 方法中,添加如下代码:

    // 1
    _tagsView.showDebugBorder = YES;
    // 2
    _tagsView.tags=@[@"睡前故事",@"热门推荐",@"经典",@"儿童教育"];
    // 3
   _tagsView.frame = _tagsView.intrinsicFrame;
  1. 这会在控件周围显示一个边框,以便我们查看它的真实框架(即 intrinsicFrame)。
  2. 设置要显示的标签文本 tags,也就是一个简单的字符串数组。
  3. 让 tagsView 的框架和真实内容的大小相符(intrisincFrame)。

实际运行效果如下:

属性

TagsView 支持以下属性,你可以通过这些属性实现一定程度的定制:

  1. tags:要显示的标签文本 tags,一个简单的字符串数组。
  2. textColor:标签文本的颜色。
  3. fontSize:标签文本的字体大小。
  4. cornerRadius:每个 tag 的圆角。
  5. borderColor:tag 包裹的边框颜色。
  6. borderWidth:边框粗细。
  7. textInsets:边框和文本之间的留白 Insets,只有 top、left 值有用。
  8. borderInsets:边框与相邻边框之间的留白 Insets,只有 top、left 值有用。
  9. intrinsicFrame:根据实际内容计算出来的框架大小,只读属性。
  10. showDebugBorder:是否显示控件本身的边框。

Demo

在 Xcode 8 中打开 TagsView.xcodeproj。

有任何问题和建议,请与作者联系。

一个 token 控件的更多相关文章

  1. appium+python:自己写的一个滑动控件的方式

    #调用方式roll_ele("ID","ele_id","7","up",3)#将控件分为7格,从底部倒数第二格向上滑动 ...

  2. 使用 ViewPager 和 RadioGroup 封装的一个导航控件

    import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.dra ...

  3. 设计一个 iOS 控件

    转载自:http://blog.csdn.net/zhangao0086/article/details/45622875 代码的等级:可编译.可运行.可测试.可读.可维护.可复用 前言 一个控件从外 ...

  4. Android 一个日历控件的实现代码

    转载  2017-05-19   作者:Othershe   我要评论 本篇文章主要介绍了Android 一个日历控件的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看 ...

  5. ASP.NET#在设计窗口上添加了一个SqlDataSource控件后,没有显示出来?

    在设计窗口上添加了一个SqlDataSource控件后,没有显示出来,但后台代码是有的 处理的办法:菜单栏->视图->可视辅助->ASP.NET非可视控件 (我用的是VS2012)

  6. 要使用C#实现一个ActiveX控件

    要使用C#实现一个ActiveX控件,需要解决三个问题: 1.使.NET组件能够被COM调用 2.在客户机上注册后,ActiveX控件能通过IE的安全认证 3.未在客户机上注册时,安装包能通过IE的签 ...

  7. 将四个按钮放入一个父控件的好处:方便移动,只需要改变父控件的y值,就可移动四个按钮

      将四个按钮放入一个父控件的好处:方便移动,只需要改变父控件的y值, 就可移动四个按钮               https://www.evernote.com/shard/s227/sh/78 ...

  8. swing实现QQ登录界面1.0( 实现了同一张图片只加载一次)、(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件)

    swing实现QQ登录界面1.0( 实现了同一张图片只加载一次).(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件) 代码思路分析: 1.(同一张图片仅仅需要加载一次就够了,下 ...

  9. 一个WPF控件 诡异的MouseEvent 。

    背景: private System.Windows.Controls.Border _borderTouch; private bool _mouseDown = false;  private S ...

随机推荐

  1. Dijkstra 算法初探

    一.Dijkstra 算法的介绍     Dijkstra 算法,又叫迪科斯彻算法(Dijkstra),算法解决的是有向图中单个源点到其他顶点的最短路径问题.举例来说,如果图中的顶点表示城市,而边上的 ...

  2. jmeter 非GUI模式下测试报错An error occurred: Unknown arg:

    D:\download\性能工具\JMeter\apache-jmeter-2.11\apache-jmeter-2.11\bin>jmeter -n -t E:\性能测试\jmeter scr ...

  3. Python-装饰器、生成器

    python中的for循环 for i in [1,2,3,4]: print(i) 正常可运行的,但是如下运行呢? for i in 1234 print(i) 结果: Traceback (mos ...

  4. Matplot相关(一)

    ——————————缩写定义—————————— import matplotlib.pyplot as plt import matplotlib as mpl ——————————函数解析———— ...

  5. s5_day13作业

    #对之前文件进行的增删改查操作实现日志操作,日志输出用户进行过的操作. def log(): import logging logger_obj=logging.getLogger() logger_ ...

  6. JavaScript:确认对话框

    <script type="text/javascript"> function Check() { if (window.confirm('您是否参与抽奖?')) { ...

  7. Spring框架学习之IOC(二)

    Spring框架学习之IOC(二) 接着上一篇的内容,下面开始IOC基于注解装配相关的内容 在 classpath 中扫描组件 <context:component-scan> 特定组件包 ...

  8. LigerUI v1.2.4 LigerGrid 横轴滚动条

    1.设置隐藏列的宽度,不要等于0 2.设置body样式添加overflow: hidden;

  9. 《大型网站系统与JAVA中间件实践》读书笔记-数据访问层

    数据访问层 5.1.2数据库垂直/水平拆分的困难 随着网站业务的快速发展,数据量和访问量不断上升,数据库的压力越来越大. 更换更好的硬件(Scale Up)是一种解决方案,而且在我们能付得起硬件费用并 ...

  10. Filter FASTA files

    Use a regular expression for filtering sequences by id from a FASTA file, e.g. just certain chromoso ...