iOS 超简单实现列表的索引功能
2018-01-29 11:24
537 查看
背景
iOS系统
iOS系统的UITableView自带了索引功能,但是实现的功能比较简单,仅仅支持,滑动索引视图来达到快速滑动UITableView的功能。
微信
微信的联系人的索引功能比系统索引效果好,前者在滑动索引视图时,会弹出一个指示器。指示器UI区域较大,展示了当前滑动到的索引位置文案,离用户滑动的区域有一定的距离,不会被手指遮挡,这个用户体检相当好。但是微信索引视图有一些小bug,这些bug我已经向官方反馈了,现在还没有解决。以下是微信联系人索引的小bug:
当滑动索引视图时,另一根手指去滑动联系人列表,联系人列表会抖动,其实也不算bug啦,就是体验上有点小别扭;
当滑动索引视图时,另一根手指去点击联系人列表或者右上角添加联系人,会跳转到另一个界面,这时返回到联系人列表界面,索引视图完全卡住不动了,再次滑动联系人列表,索引视图也不会动,指导重新滑动索引视图。
效果
鉴于微信索引方案,从产品上是很好的想法,我就无耻的抄袭了这个产品创意,用代码就实现了它,请大家见谅,我就是玩一玩。我也添加了另一种风格,将指示器换成toast的提示方式。
微信GIF图:
功能及优点
这个索引控件SCIndexView实现微信索引的基本功能,也解决了微信索引的小bug,主要功能及优点如下:
当滑动UITableView列表时,索引视图的索引位置会跟着移动;
当滑动UITableView列表时,另一根手指再滑动索引视图,列表滑动事件失效;
当滑动索引视图时,会有指示器或者toast提示当前索引位置;
当滑动索引视图时,不可以点击或者滑动UITableView列表;
可以任意定制指示器、toast、索引视图的大小,文字颜色大小,间距等UI样式。
使用方法
SCIndexView可以通过CocoaPods导入,支持iOS7及以上。
创建SCIndexViewConfiguration对象,这个对象用来控制索引的UI样式;
创建SCIndexView对象,这个对象是索引视图本身,初始化方法必须传入UITableView列表,和SCIndexViewConfiguration对象;
将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;
iOS系统
iOS系统的UITableView自带了索引功能,但是实现的功能比较简单,仅仅支持,滑动索引视图来达到快速滑动UITableView的功能。
微信
微信的联系人的索引功能比系统索引效果好,前者在滑动索引视图时,会弹出一个指示器。指示器UI区域较大,展示了当前滑动到的索引位置文案,离用户滑动的区域有一定的距离,不会被手指遮挡,这个用户体检相当好。但是微信索引视图有一些小bug,这些bug我已经向官方反馈了,现在还没有解决。以下是微信联系人索引的小bug:
当滑动索引视图时,另一根手指去滑动联系人列表,联系人列表会抖动,其实也不算bug啦,就是体验上有点小别扭;
当滑动索引视图时,另一根手指去点击联系人列表或者右上角添加联系人,会跳转到另一个界面,这时返回到联系人列表界面,索引视图完全卡住不动了,再次滑动联系人列表,索引视图也不会动,指导重新滑动索引视图。
效果
鉴于微信索引方案,从产品上是很好的想法,我就无耻的抄袭了这个产品创意,用代码就实现了它,请大家见谅,我就是玩一玩。我也添加了另一种风格,将指示器换成toast的提示方式。
微信GIF图:
功能及优点
这个索引控件SCIndexView实现微信索引的基本功能,也解决了微信索引的小bug,主要功能及优点如下:
当滑动UITableView列表时,索引视图的索引位置会跟着移动;
当滑动UITableView列表时,另一根手指再滑动索引视图,列表滑动事件失效;
当滑动索引视图时,会有指示器或者toast提示当前索引位置;
当滑动索引视图时,不可以点击或者滑动UITableView列表;
可以任意定制指示器、toast、索引视图的大小,文字颜色大小,间距等UI样式。
使用方法
SCIndexView可以通过CocoaPods导入,支持iOS7及以上。
创建SCIndexViewConfiguration对象,这个对象用来控制索引的UI样式;
创建SCIndexView对象,这个对象是索引视图本身,初始化方法必须传入UITableView列表,和SCIndexViewConfiguration对象;
将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;
相关文章推荐
- 超简单实现iOS列表的索引功能
- 超简单实现iOS列表的索引功能
- 关于iOS中简单实现调用系统相机及相册功能
- 最简单的鼠标悬停,实现下拉列表功能 bootstrap
- IOS系列——ScrollView大放大和缩小功能的简单实现
- IOS微信分享功能简单实现
- JS小功能(列表页面隔行变色)简单实现
- iOS开发------简单实现图片多选功能(Photos.framework篇)
- iOS 强制屏幕实现旋转功能,超级简单。
- iOS tableview 实现简单的搜索功能
- iOS开发------简单实现图片多选功能(AssetsLibrary篇)
- IOS开发笔记(2)EGOTableViewPullRefresh实现列表的下拉刷新功能
- iOS 微信分享功能简单实现
- 简单实现UITableView索引功能(中英文首字母索引)(一) ByH罗
- iOS table简单实现增加移动和删除功能与自定义cell的实现
- iOS UISearchController TableView 实现简单搜索功能
- IOS开发之使用Speex格式实现简单的语音聊天功能(二)
- iOS微信QQ聊天界面的UI框架以及Socket简单实现群聊功能
- sqlite之增删改查--简单的实现iOS收藏夹功能