GLTagView 1.0.2

GLTagView 1.0.2

yinhe维护。



GLTagView 1.0.2

  • 作者:
  • liujunliuhong

TagView

一个轻量级的标签选择控件,使用 Swift 编写,兼容 Objective-C。

为什么写这个库?

  标签选择功能相信大家在使用项目中经常遇到,那么大家是如何解决的?是每次都自己写一个,还是去找现成的呢?如果自己写的话,封装性和扩展性是否很好呢?
  我因为多次使用标签选择功能,并且想着这个自定义 View 并不复杂,所以每次都是重写一个自定义 View,没有考虑过是否方便移植到其他项目模块。久而久之,会发现,自己做了很多重复的事情,浪费了大量的不必要时间。
  鉴于此,我就写了这个开源库。因为这个库是 UI 封装,所以在库里,把很多 item 的定义都交给开发者自己来完成。尽可能做到侵入性低,扩展性高。

效果预览

安装

手动

克隆代码,将 Sources 文件夹拖入项目中即可使用。

CocoaPods

pod 'GLTagView'

如果提示未找到,请先执行pod repo update,再执行pod install。理论上支持iOS 8.0以上系统

使用(具体用法请查看Demo,使用方法非常简单)

1、初始化GLTagView

let tagView = GLTagView()
tagView.backgroundColor = .orange
tagView.lineSpacing = 15.0
tagView.interitemSpacing = 30.0
tagView.inset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
tagView.verticalAlignment = .top
self.view.addSubview(tagView)

tagView.snp.makeConstraints { (make) in
    make.left.equalToSuperview().offset(10)
    make.top.equalToSuperview().offset(100)
    make.right.equalToSuperview().offset(-10)
}

2、设置items

var items: [GLTagItem] = []
for i in 0..<20 {
    let label = UILabel()
    label.textAlignment = .center
    label.font = UIFont.systemFont(ofSize: 16)
    label.textColor = .white
    label.backgroundColor = .red
    label.text = "\(i)"
    
    let item = GLTagItem(view: label, width: itemWidth, height: itemHeight)
    items.append(item)
}
self.tagView.add(items: items)

使用过程中的注意事项

  • 该框架内部已处理屏幕旋转的适配,因此无需担心屏幕旋转时内部元素的排列。
  • 该开源库适合使用少量item的情况下,如果数据量较大,请考虑使用UICollectionView。当然,非要用GLTagView也是可以的,但需要考虑内存使用情况。
  • 该库不具备滚动兼容性,如果item排版超出屏幕范围,可以使用UIScrollView来包裹GLTagView实现滚动效果。
  • 如果需要根据内容自适应item的高和宽,请将GLTagItemwidthheight属性设置为0,然后自定义view,最后在自定义的view中重写intrinsicContentSize方法。
  • GLTagView支持AutoLayoutFrame布局,这意味着可以使用SnapKitMasonry

更新记录(倒叙)

2、1.0.1(2020.12.01)

  • 优化

1、1.0.0(2020.10.24)

  • 发布首个版本

补充

此仓库将持续优化,使用过程中有任何建议或问题,欢迎提出issue,或者通过邮箱[邮箱地址混淆显示]与我联系
喜欢就star一下❤️