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

用法

将 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. c# 图片加密解密的实例代码

    c# 图片加密解密的实例代码. 代码: using System; using System.Collections.Generic; using System.Text; using System. ...

  2. IE调试页面总结

    随着IE版本的升级,IE变的越来越强大,随之带来的问题也是越来越明显,如:如何调试在低版本的浏览器中 的情况 IE9的方法: 出于未知需求,用户在安装了较高版本IE浏览器(IE9)之后,又需要使用低版 ...

  3. TCP/IP 网络结构

  4. PAT 天梯赛 L1-044. 稳赢 【循环】

    题目链接 https://www.patest.cn/contests/gplt/L1-044 题意 根据对方给出剪刀石头步 给出对应的胜利出招,每K次 要有一个平局 思路 用一个循环,然后每K次 判 ...

  5. canvas笔记1

    w3c定义: <canvas> 标签定义图形,比如图表和其他图像. <canvas> 标签只是图形容器,您必须使用脚本来绘制图形. canvas 对象 属性: width he ...

  6. java连接zookeeper服务器出现“KeeperErrorCode = ConnectionLoss for /test”

    昨天调试java连接zookeeper服务器,zookeeper搭建过程在这里不做赘述,在创建连接后,然后操作节点一直报异常 错误信息如下: Exception in thread "mai ...

  7. react-native run-android Starting: Intent Error type 3 Error: Activity class does not exist

    使用”react-native run-android”命令运行android应用时,如果常常出现如下错误: Starting the app (/home/xxx/soft/sdk//platfor ...

  8. Windows 10 调节缩略图背景透明度

    A goal is a dream with a deadline. Much effort, much prosperity. 用Windows 10 的朋友都知道 win10 确实挺好用,但是做的 ...

  9. Spring_事务(2)

  10. Android -- 利用ContentProvider 读取和写入短信

    1. 读写短信 示例代码 均需要先获得读写短信的权限 <uses-permission android:name="android.permission.WRITE_SMS" ...