leeboo741 / LeeTagView

一个标签选择控件

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LeeTagView2.0

例图

屏幕截图

demo截图

View 属性

View属性

View 方法

View方法

Item 属性

Item属性

使用方法

使用方法

点击事件

点击事件回调

要做什么

想要做个标签选择页,可以实现多选,单选,在各种状态下,显示不同的内容,字体,颜色,图片,富文本等等...

做到了什么

  • 实现了标签的单选,多选,无法选择
  • 实现了标签的未选中,选中,禁用,选中禁用四种状态,以及四种状态下不同的显示
  • 内容自适应
  • 可以固定宽高
  • 基本满足日常的各种需求

学到了什么

  • intrinsicContentSize 属性的使用
    • 一直以来有些页面的大小自适应,都要自己计算所有元素,然后给定高度什么的
    • 终于发现了这么个神奇属性,变大变小自由掌握
    • instrinisicContentSize (固有大小)我知道自己的大小,如果你没有为我指定大小,我就按照自有大小排列
    • UILabel/UIImageView/UIButton等这些组件以及某些包含他们的系统组件都具有此属性,遇到这些组件,你只需要为其指定位置即可。大小就使用Intrinsic Content Size就行了。
    • 上述系统控件都重写了UIView 中的 -(CGSize)intrinsicContentSize: 方法。
    • 并且在需要改变这个值的时候调用:invalidateIntrinsicContentSize 方法,通知系统这个值改变了
    • 编写继承自UIView的自定义组件时,也想要有Intrinsic Content Size的时候,就可以通过这种方法来轻松实现。
  • Button的各种EdgeInsets
  • 不依赖Masonry的代码约束
  • 捋顺了layoutSubViews/layoutIfNeeds/setNeedsLayout

接下来还有什么

  • 很长时间没有更新过,非常感谢MR.王提出的Issuse,给了我升级版本的动力,会在后续根据使用情况继续更新完善
  • 想模仿tableView的方式,通过delegate和datasource来设置tagView
  • 试试能不能提炼接口
  • 尝试别的设计模式

想要什么

  • 我承认,只是一个小例子,没事写着玩,不算很好
  • 但是,作为长期潜水索取,从不主动付出的潜水员。
  • 我也要厚着脸皮为我在Github贡献的第一小项目跪求各位走过路过的大佬赏个Star。
  • 这很微不足道。
  • 但我会继续努力。
  • 谢谢
  • |Orz|
  • 再次感谢给我star的各位,还有提出问题的各位,让我有动力有意愿继续跟进完善该项目,非常感谢。
  • 非常希望大家积极反馈使用中所遇到的问题,我会尽可能快的反馈及修复。

About

一个标签选择控件

License:MIT License


Languages

Language:Objective-C 100.0%