加入指数(IOS开发)
该指数是用来协助查询。
原则上:
- 索引的标题是不完全一样的标题显示;
- 指数应该具有一定的代表性,它可表示一组数据;
- 假设索引列表视图。在一般情况下不再使用扩展视图。
(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开发)的更多相关文章
- iOS开发中的数学函数
在iOS开发当中...我们往往会涉及到一些算法...为了节省一些时间...让APP很快地被开发出来...我们需要对各类函数有一定的了解...接下来...我把部分常用函数分享出来...希望能帮到大家.. ...
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
-- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事 ...
- iOS开发之手势识别
感觉有必要把iOS开发中的手势识别做一个小小的总结.在上一篇iOS开发之自定义表情键盘(组件封装与自动布局)博客中用到了一个轻击手势,就是在轻击TextView时从表情键盘回到系统键盘,在TextVi ...
- iOS开发之手势识别汇总
iOS开发之手势识别汇总 iOS开发中手势识别有六种: 轻击手势(TapGestureRecognizer), 轻扫手势 (SwipeGestureRecognizer), 长按手势(LongPres ...
- iOS开发Swift篇—(三)字符串和数据类型
iOS开发Swift篇—(三)字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http://www ...
- iOS开发相关图书推荐
Objective-C编程之道:iOS设计模式解析 作 者 [美] Carlo Chung 著:刘威 译 出 版 社 人民邮电出版社 出版时间 2011-11-01 版 次 1 页 ...
- 如何学习ios开发
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:Franz Fang链接:http://www.zhihu.com/question/20264108/answer/3026 ...
- 李洪强iOS开发Swift篇—03_字符串和数据类型
李洪强iOS开发Swift篇—03_字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http:// ...
- 【转】iOS 开发怎么入门?
原文网址:http://www.zhihu.com/question/20264108 iOS 开发怎么入门? 请问有设计模式.内存管理方面的资料吗?最好有除了官方文档之外的其它内容,10 条评论 分 ...
- 转发:iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
-- iOS事件全面解析 转载来自崔江涛(KenshinCui) 链接:http://www.cnblogs.com/kenshincui/p/3950646.html 概览 iPhone的成功很大一 ...
随机推荐
- 将单词首字母大写的JS脚本工具
<html> <head> <title>首字母全改为大写JS脚</title> <SCRIPT LANGUAGE="JavaScrip ...
- Label的各个属性
- 高效 Java Web 开发框架 JessMA v3.2.3 beta-1 发布
JessMA(原名:Portal-Basic)是一套功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hib ...
- linux中vsftpd配置文件详解
vsftpd配置文件采用“#”作为注释符,以“#”开头的行和空白行在解析时将被忽略,其余的行被视为配置命令行,每个配置命令的“=”两边不要留有空格.对于每个配置命令,在配置文件中还列出了相关的配置说明 ...
- [Android学习笔记]获取view的尺寸和坐标
对于UI方面很多时候需要获取它的很多信息,具体情况见view的文档 View文档 http://developer.android.com/training/index.html 常用方法:获取vie ...
- dsp下基于双循环缓冲队列的视频采集和显示记录
对最近在设计的视频采集和显示缓冲机制做一个记录,以便以后使用. 视频采集和显示缓冲机制,其实是参考了Linux下v4L2的驱动机制,其采用输入多缓冲frame,输出多缓冲的切换机制.简单的就是ping ...
- 【机器学习实验】学习Python来分类现实世界的数据
引入 一个机器能够依据照片来辨别鲜花的品种吗?在机器学习角度,这事实上是一个分类问题.即机器依据不同品种鲜花的数据进行学习.使其能够对未标记的測试图片数据进行分类. 这一小节.我们还是从scikit- ...
- 【Bug Fix】Error : Can't create table 'moshop_1.#sql-534_185' (errno: 150)
运行alter操作, alter table xx_shop_info add index FK9050F5D83304CDDC (shop_area), add constraint FK9050F ...
- hdu3006(状态压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3006 题意:给定一些集合,求这些集合所能组合的集合个数. 分析:这题就是用一个二进制数保存一个集合的元 ...
- cocos2d-x 消类游戏,类似Diamond dash 设计
前几天刚刚在学习cocos2d-x,无聊之下自己做了一个类似Diamond dash的消类游戏,今天放到网上来和大家分享一下.我相信Diamond dash这个游戏大家都玩过,游戏的规则是这样的,有一 ...