iOS视图封装 - DJTagListView

DJTagListView

https://github.com/shileseal/DJTagListView
还有1个TODO未解决,欢迎star和fork

标签列表

DJTagListView_image_1.png

功能

  1. 无选择样式的标签列表
  2. 自定义标签列表的样式
  3. 自定义标签样式
  4. 自定义标签间距
  5. 标签选择分为单选和多选
DJTagListView_image_2.png

DJTagListView_image_3 (1).png

用法

1.实现的接口

protocol DJTagListProtocol {
    
    var delegate: DJTagListViewDelegate? { get set }
    
    func setTags(titles: [String])
    
    func setTags(titles: [String], selectedIndexes: [Int])
    
    func addTag(title: String)
    
    func addTags(titles: [String])
    
    func removeTag(index: Int)
    
    func removeAllTags()
    
    func clickTag(index: Int)
    
    func selectTag(index: Int)
    
    func deselectTag(index: Int)
    
    func deselectAllTags()
}

public protocol DJTagListViewDelegate: NSObjectProtocol {
    
    func tagClicked(tagListView: DJTagListView, sender: UIButton)
}

2.创建


    @IBOutlet weak var sbTagListView: DJTagListView!
    
    //    var djTagListView: DJTagListView = DJTagListView(frame: CGRect(x: 10, y: 100, width: 320, height: 100))
    
        sbTagListView.setTags(["标签1", "标签2", "标签3"])
        sbTagListView.setTags(["标签4", "标签5"], selectedIndexes: [3, 4])
        sbTagListView.addTag("标签6标签6标签6")
        sbTagListView.addTags(["标签7", "标签8"])
        sbTagListView.addTag("标签9")
        sbTagListView.removeTag(8)
        sbTagListView.addTag("标签10标签10标签10标签10标签10标签10标签10标签10标签10")
        sbTagListView.addTag("标签11")
        sbTagListView.addTag("标签12")
     
    sbTagListView.delegate = self

self.view.addSubview(sbTagListView)

3.配置(可选)

        sbTagListView.cornerRadius = 10
        sbTagListView.borderWidth = 0.5
        sbTagListView.tagSelectType = .multiSelection

DJTagListView的默认配置

    //MARK: - Selection Style
    var tagSelectType: TagSelectType = .multiSelection
    
    //MARK: - Tag Layout Style
    var minimumLineSpacing: CGFloat = 5
    var minimumInteritemSpacing: CGFloat = 5
    
    //MARK: - Tag Style
    var titleFont: UIFont = UIFont.systemFontOfSize(12)
    var borderWidth: CGFloat = 0
    
    var titleNormalColor: UIColor = UIColor.grayColor()
    var titleHighlightedColor: UIColor = UIColor.blackColor()
    var titleSelectedColor: UIColor = UIColor.whiteColor()
    
    var tagBgNormalColor: UIColor = UIColor.whiteColor()
    var tagBgHighlightedColor: UIColor = UIColor.whiteColor()
    var tagBgSelectedColor: UIColor = UIColor.redColor()
    
    var borderNormalColor: UIColor = UIColor.grayColor()
    var borderHighlightedColor: UIColor = UIColor.grayColor()
    var borderSelectedColor: UIColor = UIColor.redColor()
    
    var cornerRadius: CGFloat = 0

4.回调方法

extension ViewController: DJTagListViewDelegate {

    func tagClicked(tagListView: DJTagListView, sender: UIButton) {
        print(sender.titleLabel?.text!)
        print(sender.selected)
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,194评论 4 61
  • 原文片段:《谈话的力量》中有关批评的描写。 I: 面对批评时,首先要做的就是同意对方的批评或表示尊重对方发表言论的...
    hylzy阅读 1,423评论 1 0
  • 小时候离家不远处有一座桥,我们当地人都唤作十一孔桥。 每年的端午节都会在桥下举行盛大的赛龙舟活动。彼时两岸就会坐满...
    元气小西阅读 1,618评论 0 0
  • 前段时间我跟一HRM聊天,谈到培训的作用和意义,脑袋里灵光一闪,蹦出一句文中加粗的话:培训既是雪中送炭,又是锦上添...
    礼尚往来可好阅读 4,558评论 0 1