ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自定义TableviewIndex (右边索引)

2019-01-30 18:44:24  阅读:738  来源: 互联网

标签:效果 自定义 代码 UIColor 索引 方法 make TableviewIndex


 最近接到一个需求,要求在列表上添加一个索引,不仅仅如此,还要每个索引很久以前微信那样,每个字母有背景颜色,比如这个样子的。

  这个功能就很强大了,感谢这个效果的作者给了我极大的帮助,所以在分享我的代码之前,先献上这个效果的开源代码SCIndexView

  当我下载完这个代码之后,我第一个感觉就是效果很炫,但是美中不足的是,耦合度比较高,而且使用很多遍历,对于代码设计和性能做的不是很好,但是也都无伤大雅。于是我决定重新封装一个,这里要分享一下我个人,对于控件封装的几个原则:

      一,尽量不影响业务工程师原有代码,如果一定要影响,那么影响最好降到最低。

  二,尽量不要把superview传入subview中,以免引起循环持有。

  三,尽量减少使用逻辑判断,而使用对象的多态性来执行不同方法。

  四,尽量不要让model和view产生关联,我不希望我自己写的代码,拎出去就是一坨,这样很不利于再次修改和使用,要把功能性代码的耦合度降到最低。

  当然,我写的代码也存在许许多多的问题,也希望有人可以提出指正,我们一起用代码改变世界。

  接下来,我介绍一下我的实现方式,感兴趣的朋友可以去github下载。DDTableviewIndex

这个方法同样也是在类目中实现的,如果对默认效果满意,只需要在我们的vc中引入类目的头文件,根本不需要多加一行代码,只需要实现之前唤醒索引的代理方法即可,方便快捷。如果真的觉得颜色不那么让人满意,当然,不废话,添加方法如下:

  •     DDIndexViewMode *mode = [[DDIndexViewMode alloc]initMakeIndexviewModel:^(DDIndexViewModel *make) {
  •         make.indexColor = [UIColor blackColor];
  •         make.indexBackgroundColor = [UIColor whiteColor];
  •         make.selectedColor = [UIColor whiteColor];
  •         make.selectedBackgroundColor = [UIColor blackColor];
  •     }];
  •     [self.tableView addIndexViewStyleWithMode:mode];

 

 

          效果如下:  

 

                                                                            

  这里我借鉴了masory的使用方法,因为我觉得这样写方法的可选参数,自由度会比较好,设置好之后,调用tableview类目对外的方法即可,还算好用吧。

  欢迎大家提出问题,共同写出更好的代码!

标签:效果,自定义,代码,UIColor,索引,方法,make,TableviewIndex
来源: https://www.cnblogs.com/xuruofan/p/10339347.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有