[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7089":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":20,"defaultBranch":21,"hasWiki":19,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":16,"starSnapshotCount":16,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},7089,"TagListView","ElaWorkshop\u002FTagListView","ElaWorkshop","Simple and highly customizable iOS tag list view, in Swift.","",null,"Swift",2677,492,27,91,0,60.08,"MIT License",true,false,"master",[],"2026-06-12 04:00:32","# TagListView\n\n[![Travis CI](https:\u002F\u002Ftravis-ci.org\u002FElaWorkshop\u002FTagListView.svg)](https:\u002F\u002Ftravis-ci.org\u002FElaWorkshop\u002FTagListView)\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002FTagListView.svg?style=flat)](http:\u002F\u002Fcocoadocs.org\u002Fdocsets\u002FTagListView\u002F)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fl\u002FTagListView.svg?style=flat)](https:\u002F\u002Fgithub.com\u002FElaWorkshop\u002FTagListView\u002Fblob\u002Fmaster\u002FLICENSE)\n[![Carthage compatible](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCarthage-compatible-4BC51D.svg?style=flat)](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage)\n\nSimple and highly customizable iOS tag list view, in Swift.\n\nSupports Storyboard, Auto Layout, and @IBDesignable.\n\n\u003Cimg alt=\"Screenshot\" src=\"Screenshots\u002FScreenshot.png\" width=\"310\">\n\n## Usage\n\nThe most convenient way is to use Storyboard. Drag a view to Storyboard and set Class to `TagListView` (if you use CocoaPods, also set Module to `TagListView`). Then you can play with the attributes in the right pane, and see the preview in real time thanks to [@IBDesignable](http:\u002F\u002Fnshipster.com\u002Fibinspectable-ibdesignable\u002F).\n\n\u003Cimg alt=\"Interface Builder\" src=\"Screenshots\u002FInterfaceBuilder.png\" width=\"566\">\n\nYou can add tag to the tag list view, or set custom font and alignment through code:\n\n```swift\ntagListView.textFont = UIFont.systemFont(ofSize: 24)\ntagListView.alignment = .center \u002F\u002F possible values are [.leading, .trailing, .left, .center, .right]\ntagListView.minWidth = 57\n\ntagListView.addTag(\"TagListView\")\ntagListView.addTags([\"Add\", \"two\", \"tags\"])\n\ntagListView.insertTag(\"This should be the second tag\", at: 1)\n\ntagListView.setTitle(\"New Title\", at: 6) \u002F\u002F to replace the title a tag\n\ntagListView.removeTag(\"meow\") \u002F\u002F all tags with title “meow” will be removed\ntagListView.removeAllTags()\n```\n\nYou can implement `TagListViewDelegate` to receive tag pressed event:\n\n```swift\n\u002F\u002F ...\n{\n    \u002F\u002F ...\n    tagListView.delegate = self\n    \u002F\u002F ...\n}\n\nfunc tagPressed(title: String, tagView: TagView, sender: TagListView) {\n    print(\"Tag pressed: \\(title), \\(sender)\")\n}\n```\n\nYou can also customize a particular tag, or set tap handler for it by manipulating the `TagView` object returned by `addTag(_:)`:\n\n```swift\nlet tagView = tagListView.addTag(\"blue\")\ntagView.tagBackgroundColor = UIColor.blueColor()\ntagView.onTap = { tagView in\n    print(\"Don’t tap me!\")\n}\n```\n\nBe aware that if you update a property (e.g. `tagBackgroundColor`) for a `TagListView`, all the inner `TagView`s will be updated.\n\n## Installation\n\nUse [CocoaPods](https:\u002F\u002Fgithub.com\u002FCocoaPods\u002FCocoaPods):\n\n```ruby\npod 'TagListView', '~> 1.0'\n```\n\nOr [Carthage](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage):\n\n```ruby\ngithub \"ElaWorkshop\u002FTagListView\" ~> 1.0\n```\n\nOr drag **TagListView** folder into your project.\n\n### Older Swift Versions?\n\nCurrently, the `master` branch is using Swift 5.\n\nFor Swift 4, use version [1.3.2](https:\u002F\u002Fgithub.com\u002FElaWorkshop\u002FTagListView\u002Freleases\u002Ftag\u002F1.3.2) or [swift-4](https:\u002F\u002Fgithub.com\u002FElaWorkshop\u002FTagListView\u002Ftree\u002Fswift-4) branch. For Swift 3, use version [1.2.0](https:\u002F\u002Fgithub.com\u002FElaWorkshop\u002FTagListView\u002Freleases\u002Ftag\u002F1.2.0) or [swift-3](https:\u002F\u002Fgithub.com\u002FElaWorkshop\u002FTagListView\u002Ftree\u002Fswift-3) branch. For Swift 2, use version [1.0.1](https:\u002F\u002Fgithub.com\u002FElaWorkshop\u002FTagListView\u002Freleases\u002Ftag\u002F1.0.1) or [swift-2.3](https:\u002F\u002Fgithub.com\u002FElaWorkshop\u002FTagListView\u002Ftree\u002Fswift-2.3) branch. For Swift 1.2, use version [0.2](https:\u002F\u002Fgithub.com\u002FElaWorkshop\u002FTagListView\u002Freleases\u002Ftag\u002F0.2).\n\n## Contribution\n\nPull requests are welcome! If you want to do something big, please open an issue to let me know first.\n\n## License\n\nMIT\n","TagListView 是一个简单且高度可定制的 iOS 标签列表视图组件，使用 Swift 编写。它支持 Storyboard、自动布局和 @IBDesignable，使得开发者能够轻松地在 Interface Builder 中进行设计并实时预览效果。通过代码可以添加标签、设置自定义字体及对齐方式等，并提供了 `TagListViewDelegate` 协议来处理标签点击事件。此外，还可以针对特定标签进行个性化设置或为其绑定点击处理器。该组件适用于需要展示可交互标签列表的应用场景，如标签云、关键词筛选等功能模块。安装方式包括 CocoaPods 和 Carthage，同时也支持直接将源码文件拖入项目中使用。",2,"2026-06-11 03:10:29","top_language"]