简单且高度可定制的 iOS 标签列表视图,使用 Swift 编写。
支持 Storyboard、Auto Layout 和 @IBDesignable。
最便捷的方式是使用 Storyboard。将一个 View 拖动到 Storyboard 中,并将 Class 设置为 TagListView
(如果使用 CocoaPods,也需要将 Module 设置为 TagListView
)。然后,你可以在右侧窗格中调整属性,并通过 @IBDesignable 实时查看预览效果。
你可以向标签列表视图添加标签,或者通过代码设置自定义字体和对齐方式
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 文件夹拖入到你的项目中。
目前,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