iOS UITableView索引列开发详解
2015-07-08 09:55
543 查看
做苹果开发的朋友在地区列表可能会遇到在页面的右侧有一列类似与导航的索引列,这次有机会遇到了,细细研究了一下,原来没有想象中的困难,只需要简单的几步就能做出自己的索引列。本来想和搜索条在一块讲解,后来考虑了一下,这个东西和搜索条功能虽有相似之处,却并非需要一起使用,所以就单独摘出来,独立介绍吧!
索引列看着就很高大上,实际做出来的效果也挺不错的。这个既不需要引入第三方的类库,还不需要单独的委托,它是uitableview列表控件的一个功能的延伸,将用户的体验做到极致,这也就是苹果细致、人性化的地方。下面开始关于索引列的讲解。
第一步:添加列表委托UITableViewDataSource, UITableViewDelegate
第二步:列表控件的添加
这里有个需要注意的地方,也是我花费了一段时间才总结出来的经验,右侧索引列的文本颜色是可以自定义改变的 myTableView.sectionIndexColor
= BB_Yanzheng_Color。只需要设置这个属性即可,当初花费了我不少精力,差点自定义去设置,偶然间发现原来苹果已经自定义好了这个属性,所以以后还是得从源头上解决问题。
第三步:索引列数据的获取
这里注释的已经很详细,基本不需要我多解释,唯一需要注意的地方是如果本页面里面有多个列表的话需要在不需要的列表中隐藏索引列,否则可能会出现奇怪的问题,主要是获取不到数据,因为索引列是和uitableview的配合使用的,这个注意一下就好。
UITableView显示索引。 显示索引实现的委托方法主要是:
//返回section的个数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
//返回索引数组
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
//返回每个索引的内容
-(NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section
//响应点击索引时的委托方法
-(NSInteger)tableView:(UITableView *)tableView
sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
另外一种效果:
下面是实现代码:
.h文件:
?
.m文件:
?
索引列看着就很高大上,实际做出来的效果也挺不错的。这个既不需要引入第三方的类库,还不需要单独的委托,它是uitableview列表控件的一个功能的延伸,将用户的体验做到极致,这也就是苹果细致、人性化的地方。下面开始关于索引列的讲解。
第一步:添加列表委托UITableViewDataSource, UITableViewDelegate
第二步:列表控件的添加
这里有个需要注意的地方,也是我花费了一段时间才总结出来的经验,右侧索引列的文本颜色是可以自定义改变的 myTableView.sectionIndexColor
= BB_Yanzheng_Color。只需要设置这个属性即可,当初花费了我不少精力,差点自定义去设置,偶然间发现原来苹果已经自定义好了这个属性,所以以后还是得从源头上解决问题。
第三步:索引列数据的获取
UITableView显示索引。 显示索引实现的委托方法主要是:
//返回section的个数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
//返回索引数组
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
//返回每个索引的内容
-(NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section
//响应点击索引时的委托方法
-(NSInteger)tableView:(UITableView *)tableView
sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
另外一种效果:
下面是实现代码:
.h文件:
?
?
相关文章推荐
- 使用Burp Suite爆破Web应用密码(转载)
- 第一个自己完成的leetcode( JAVA) Implement Queue using Stacks
- 原本存在项目,再次打开出现 'Building workspace'has encountered a problem.Errors occured during the build.
- ios 获取手机信息(UIDevice、NSBundle、NSLocale)
- Sprite (2D and UI)
- Samba常用配置及GUEST访问
- Win10 Mobile build 10158最新更新内容汇总:更流畅
- leetcode解题报告232——Implement Queue using Stacks
- block在俩个UIViewController间传值
- 百度UEditor使用
- 免费素材:包含 250+ 组件的 DO UI Kit
- Android UI 组件开源软件
- UISegmentControl/多段选择视图
- EasyUI 树型菜单 异步加载树
- 黑马程序员——JAVA笔记——GUI
- druid 数据源密码加密配置
- Work around by " Due to heavy load, the latest workflow operation has been queued. "
- Work around by " Due to heavy load, the latest workflow operation has been queued. " 分类: Sharepoint 2015-07-08 00:19 3人阅读 评论(0) 收藏
- iOS-UITextField收起键盘和拓展
- 线程的学习(一)