TagListView

Travis CI Version License Carthage compatible

简单且高度可定制的 iOS 标签列表视图,使用 Swift 编写。

支持 Storyboard、Auto Layout 和 @IBDesignable。

Screenshot

使用方法

最便捷的方式是使用 Storyboard。将一个 View 拖动到 Storyboard 中,并将 Class 设置为 TagListView (如果使用 CocoaPods,也需要将 Module 设置为 TagListView)。然后,你可以在右侧窗格中调整属性,并通过 @IBDesignable 实时查看预览效果。

Interface Builder

你可以向标签列表视图添加标签,或者通过代码设置自定义字体和对齐方式

tagListView.textFont = UIFont.systemFont(ofSize: 24)
tagListView.alignment = .center // possible values are [.leading, .trailing, .left, .center, .right]
tagListView.minWidth = 57

tagListView.addTag("TagListView")
tagListView.addTags(["Add", "two", "tags"])

tagListView.insertTag("This should be the second tag", at: 1)

tagListView.setTitle("New Title", at: 6) // to replace the title a tag

tagListView.removeTag("meow") // all tags with title “meow” will be removed
tagListView.removeAllTags()

你可以实现 TagListViewDelegate 协议来接收标签按下事件

// ...
{
    // ...
    tagListView.delegate = self
    // ...
}

func tagPressed(title: String, tagView: TagView, sender: TagListView) {
    print("Tag pressed: \(title), \(sender)")
}

你还可以通过操作 addTag(_:) 返回的 TagView 对象,自定义特定标签或为其设置点击处理程序

let tagView = tagListView.addTag("blue")
tagView.tagBackgroundColor = UIColor.blueColor()
tagView.onTap = { tagView in
    print("Don’t tap me!")
}

请注意,如果更新 TagListView 的属性(例如 tagBackgroundColor),所有内部的 TagView 都将被更新。

安装

使用 CocoaPods

pod 'TagListView', '~> 1.0'

或者 Carthage

github "ElaWorkshop/TagListView" ~> 1.0

或者将 TagListView 文件夹拖入到你的项目中。

旧版本的 Swift?

目前,master 分支使用的是 Swift 5。

对于 Swift 4,请使用 1.3.2 版本或 swift-4 分支。对于 Swift 3,请使用 1.2.0 版本或 swift-3 分支。对于 Swift 2,请使用 1.0.1 版本或 swift-2.3 分支。对于 Swift 1.2,请使用 0.2 版本。

贡献

欢迎提交 Pull Request!如果你想做一些大的改动,请先开一个 issue 让我知道。

许可证

MIT