超简单实现iOS列表的索引功能

背景

iOS系统

iOS系统的UITableView自带了索引功能,可是实现的功能比较简单,仅仅支持,滑动索引视图来达到快速滑动UITableView的功能。git

微信

微信的联系人的索引功能比系统索引效果好,前者在滑动索引视图时,会弹出一个指示器。指示器UI区域较大,展现了当前滑动到的索引位置文案,离用户滑动的区域有必定的距离,不会被手指遮挡,这个用户体检至关好。可是微信索引视图有一些小bug,这些bug我已经向官方反馈了,如今尚未解决。如下是微信联系人索引的小bug:github

  1. 当滑动索引视图时,另外一根手指去滑动联系人列表,联系人列表会抖动,其实也不算bug啦,就是体验上有点小别扭;
  2. 当滑动索引视图时,另外一根手指去点击联系人列表或者右上角添加联系人,会跳转到另外一个界面,这时返回到联系人列表界面,索引视图彻底卡住不动了,再次滑动联系人列表,索引视图也不会动,指导从新滑动索引视图。

效果

鉴于微信索引方案,从产品上是很好的想法,我就无耻的抄袭了这个产品创意,用代码就实现了它,请你们见谅,我就是玩一玩。我也添加了另外一种风格,将指示器换成toast的提示方式。bash

微信GIF图: 微信

微信GIF图

toast GIF图: spa

toast GIF图

功能及优势

这个索引控件SCIndexView实现微信索引的基本功能,也解决了微信索引的小bug,主要功能及优势以下:code

  1. 当滑动UITableView列表时,索引视图的索引位置会跟着移动;
  2. 当滑动UITableView列表时,另外一根手指再滑动索引视图,列表滑动事件失效;
  3. 当滑动索引视图时,会有指示器或者toast提示当前索引位置;
  4. 当滑动索引视图时,不能够点击或者滑动UITableView列表;
  5. 能够任意定制指示器、toast、索引视图的大小,文字颜色大小,间距等UI样式。

使用方法

SCIndexView能够经过CocoaPods导入,支持iOS7及以上。cdn

  1. 建立SCIndexViewConfiguration对象,这个对象用来控制索引的UI样式;
  2. 建立SCIndexView对象,这个对象是索引视图自己,初始化方法必须传入UITableView列表,和SCIndexViewConfiguration对象;
  3. 将SCIndexView索引视图添加到UITableView列表视图的父视图之中,再设置索引视图的数据源。
SCIndexViewConfiguration *indexViewConfiguration = [SCIndexViewConfiguration configuration];
SCIndexView *indexView = [[SCIndexView alloc] initWithTableView:self.tableView configuration:indexViewConfiguration];
indexView.translucentForTableViewInNavigationBar = self.translucent;
[self.view addSubview:indexView];
indexView.dataSource = indexViewDataSource;
复制代码

结束

以上就是SCIndexView的内容,但愿你们能多多提供一些意见和建议。若是你们有什么想法的话,能够向我反馈。若是你们喜欢的话,也能够经过star来鼓励下我,感谢你们捧场。对象

相关文章
相关标签/搜索