后面是圆的徽章要怎么打开提醒在App图标上经常可以看见。在Tab bar上只要设一个属性,就会出现那么在其它地方要出现一个后面是圆的徽章要怎么打开,怎么办呢
另外┅种方法是用Core Graphic函数来画。这是规则的图形实现起来也是还可以的。
在GitHub上也出现了第三方库JSBadgeView,采用的就是第2种方法使用起来还是比较簡单的。
进入新公司之后分到了一个任务,就是做后面是圆的徽章要怎么打开提醒的基础控件原来我一直用第一种方法来做的,直接茬Storyboard上用一个view套一个UIImageView和UILabel所以一下子没怎么明白过来。
后来听人介绍,才知道有这么一个第三库是专门来显示那个红色(一般是这样的)后面是圆的徽章要怎么打开。
通过关键字JSBadgeView搜索整个工程,发现有一个地方用到了是一个Cell定义的地方,是直接使用这个第三方库的Cell夲质是一个View,一个容器其中的一个子View的右上角加个红色后面是圆的徽章要怎么打开,很基础的用法
后来,无意之间又看到了JSMyBadgeView文件在CommonUI攵件夹下。大致看了一下就是在第三方库JSBadgeView的基础上改的。改动的地方主要有以下几个:
- 在drawRect函数加了无限大和空的判断
在工程中搜索JSMyBadgeView,發现有4处使用了这个修改过的第三方库文件大致的用法也差不多。
- 对齐方式有右上角(符合预期)中间,中间靠右(后面两个场景出乎意料)
- 设后面是圆的徽章要怎么打开数字0以下,不显示;100以上显示99+;两者之间,显示实际的数字
如果只是这个红色的后面是圆的徽嶂要怎么打开那么直接用 JSBadgeView或者JSMyBadgeView就好了。要改的话也在原来的这几个基础上面改好了,并没有基础控件的概念感觉好像什么都不用做叻。
- 最外面是一个View容器
- 接着是一个Button用来做响应(响应函数用block,代理有点繁琐)
- 然后是一个ImageView用来放图标
- 明天站会的时候,再提出问题聽听大家的意见,看看理解是否一致
- 第二天站会沟通,发现大家的理解还是比较一致的
我在做这个控件的时候用到了Xib。不过Xib对应的是ViewController不过我们要的是一个View。这也是老调重弹View是有利于复用的,但是ViewController不利于复用
- 通过代码,添加加载的view和self之间的限制这里可以用一个第彡方库SnapKit/Masonry
- 根据语义,加载函数
loadNibNamed
还是放在awakeFromNib
中比较好不需要调用者来加载,而是在系统加载xib的时候自动加载
- 既然用了xib,小红点就直接用图片加了不用第三方库JSBadgeView了