该指数是用来协助查询。

原则上:

- 索引的标题是不完全一样的标题显示;

- 指数应该具有一定的代表性,它可表示一组数据;

- 假设索引列表视图。在一般情况下不再使用扩展视图。

(easy指向)

会又一次到的数据源方法:

tableView: numberOfRowsInSection: ------获取某节的行数

tableView:cellForRowAtIndexPath: -------Cell数据的实现

numberofSectionInTableView: ----------获取节数

tableView:titleForHeaderInSection: --------节标题

sectionIndexTitlesForTableView: --------获取索引

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl5YWt1bjE5OTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad]; NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath = [bundle pathForResource:@"team_dictionary"
ofType:@"plist"]; // 获取属性列表文件里的所有数据
self.dicData = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
NSArray *tempList = [self.dicData allKeys];
// 对key进行排序
// selector为SEL类型,sortedArrayUsingSelector方法的參数必须是selector
self.listGroupname = [tempList sortedArrayUsingSelector:@selector(compare:)];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} #pragma mark 重写数据源方法
- (NSInteger) tableView: (UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// 依照节索引从小组名数组中获得组名
NSString *groupName = [self.listGroupname objectAtIndex:section];
// 将组名作为key,从字典中取出球队数组集合
// 由于存储的时候是哈希结构
NSArray *listTeams = [self.dicData objectForKey:groupName];
// 这一节一共同拥有多少球队
return [listTeams count];
} - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
} // 获得选择的节 A组即第1节
NSUInteger section = [indexPath section];
// 获得选择节中选中的行索引 -- A组第1、第2.。 。 NSUInteger row = [indexPath row];
// 依照节索引从小组名数组中获得组名 -- A组
NSString *groupName = [self.listGroupname objectAtIndex:section];
// 将组名作为key,从字典中取出球队数组集合
NSArray *listTeams = [self.dicData objectForKey:groupName]; cell.textLabel.text = [listTeams objectAtIndex:row];
return cell;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// 该节行数
return [self.listGroupname count];
} - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
// 该节的节头
NSString *groupName = [self.listGroupname objectAtIndex:section];
return groupName;
} - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
// 加入索引
NSMutableArray *listTitles = [[NSMutableArray alloc] initWithCapacity:[self.listGroupname count]];
// 把A组改为A
for (NSString *item in self.listGroupname) {
NSString *title = [item substringToIndex:1]; // 获取的第一个字符
[listTitles addObject: title]; // 字符串数组追加的最后位置
}
return listTitles;
} @end

注意:

在这个故事中要配置版本tableview委托协议。。!!

加入指数(IOS开发)的更多相关文章

  1. iOS开发中的数学函数

    在iOS开发当中...我们往往会涉及到一些算法...为了节省一些时间...让APP很快地被开发出来...我们需要对各类函数有一定的了解...接下来...我把部分常用函数分享出来...希望能帮到大家.. ...

  2. iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

    -- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事 ...

  3. iOS开发之手势识别

    感觉有必要把iOS开发中的手势识别做一个小小的总结.在上一篇iOS开发之自定义表情键盘(组件封装与自动布局)博客中用到了一个轻击手势,就是在轻击TextView时从表情键盘回到系统键盘,在TextVi ...

  4. iOS开发之手势识别汇总

    iOS开发之手势识别汇总 iOS开发中手势识别有六种: 轻击手势(TapGestureRecognizer), 轻扫手势 (SwipeGestureRecognizer), 长按手势(LongPres ...

  5. iOS开发Swift篇—(三)字符串和数据类型

    iOS开发Swift篇—(三)字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容  let website = "http://www ...

  6. iOS开发相关图书推荐

    Objective-C编程之道:iOS设计模式解析 作      者 [美] Carlo Chung 著:刘威 译 出 版 社 人民邮电出版社 出版时间 2011-11-01 版      次 1 页 ...

  7. 如何学习ios开发

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:Franz Fang链接:http://www.zhihu.com/question/20264108/answer/3026 ...

  8. 李洪强iOS开发Swift篇—03_字符串和数据类型

    李洪强iOS开发Swift篇—03_字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容  let website = "http:// ...

  9. 【转】iOS 开发怎么入门?

    原文网址:http://www.zhihu.com/question/20264108 iOS 开发怎么入门? 请问有设计模式.内存管理方面的资料吗?最好有除了官方文档之外的其它内容,10 条评论 分 ...

  10. 转发:iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

    -- iOS事件全面解析 转载来自崔江涛(KenshinCui) 链接:http://www.cnblogs.com/kenshincui/p/3950646.html 概览 iPhone的成功很大一 ...

随机推荐

  1. 运用mapreduce计算tf-idf

    问题描写叙述:给定一个大文件,文件里的内容每一行为:文档名,文档内容. input 文档名1,word1 Word2 ....... 文档名2,word1 Word2 ....... output w ...

  2. spice for openstack

    nova.conf vnc_enabled=False [Spice] agent_enabled=True enabled=True html5proxy_base_url=http://x.x.x ...

  3. linux下C语言socket网络编程简例

    原创文章,转载请注明转载字样和出处,谢谢! 这里给出在linux下的简单socket网络编程的实例,使用tcp协议进行通信,服务端进行监听,在收到client的连接后,发送数据给client:clie ...

  4. hdu 1070Milk

    地址链接:http://acm.hdu.edu.cn/showproblem.php?pid=1070 题意:多看几遍,学着静下来心去看英文题 代码: #include<bits/stdc++. ...

  5. WM_NCHITTEST有21种取值,常用的有HTCAPTION,HTCLIENT,HTBORDER,HTSYSMENU,HTTRANSPARENT,罗列所有VCL里对其使用的情况

    我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口. 一个容易想到的方案 ...

  6. 【从0到1学Web前端】CSS伪类和伪元素

    1.CSS中的伪类 CSS 伪类用于向某些选择器加入特殊的效果. 语法: selector : pseudo-class {property: value} CSS 类也可与伪类搭配使用 select ...

  7. Tiny Mapper是一个.net平台开源的对象映射组件

    NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper   阅读目录 1.Tiny Mapper基本介绍 2.Tiny Mapper 基本使用 3.Tiny Mapper 指定配置使用 ...

  8. 巧妙使用Firebug插件,快速监控网站打开缓慢的原因

    原文 巧妙使用Firebug插件,快速监控网站打开缓慢的原因 很多用户会问,我的网站首页才50KB,打开网页用了近60秒才打开?如何解释? 用户抱怨服务器运行缓慢,w3wp.exe 出现 CPU 10 ...

  9. JavaScript 中的事件对象(读书笔记思维导图)

    在触发 DOM 上的某个事件时,会产生一个事件对象 event,这个对象中包含着所有与事件有关的信息.包括导致事件的元素.事件的类型以及其他与特定事件相关的信息.例如,鼠标操作导致的事件对象中,会包含 ...

  10. 《TCP/IP作品详细解释2:实现》笔记--Radix树路由表

    通过IP完整的路由是路由机制,它通过搜索路由表来确定从哪个分组被发送的接口执行此,它是不一样的路由策略,路由策略 它是一组规则,这些规则可以被用来确定哪些路由编程到路由表,Net/3内核实现的路由机制 ...