电话本索引【表视图】

MainViewController.h

@interface RootViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>

@property(nonatomic, retain)NSDictionary *dic;
@property(nonatomic, retain)NSArray *allKeys;

MainViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];

    //创建表视图
    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 20, 320, 460) style:UITableViewStylePlain];
    tableView.delegate = self;
    tableView.dataSource = self;
    [self.view addSubview:tableView];
    [tableView release];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"ListData.plist" ofType:nil];//  /ListData.plist
    _dic = [[NSDictionary alloc] initWithContentsOfFile:path];

    //取得key
//    _allKeys = [_dic allKeys];

    /*
     sortedArrayUsingSelector:遍历数组中的每一个元素,调用后面的方法
     */
    _allKeys = [[[_dic allKeys] sortedArrayUsingSelector:@selector(compare:)] retain];

    //设置侧栏的背景颜色
    tableView.sectionIndexBackgroundColor = [UIColor blackColor];
}

/*

 字典的结构
 A : ["asd","ase","aer","add"],
 B : ["bsd","bse","br","bd"],
 C : ["cc","cd"],
 ......
 */

#pragma mark - UITableView dataSource
//设置组的个数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return _dic.count;
}

//设置每组有多少个cell
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    NSString *key = [_allKeys objectAtIndex:section];
    NSArray *value = [_dic objectForKey:key];
    return value.count;
}

//创建cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *inde = @"cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:inde];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:inde] autorelease];
    }

    NSString *key = [_allKeys objectAtIndex:indexPath.section];
    NSArray *value = [_dic objectForKey:key];

    cell.textLabel.text = value[indexPath.row];

    return cell;
}

//设置组的头视图标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {

   return [_allKeys objectAtIndex:section];

}

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {

    return _allKeys;
}

//点击右侧索引栏调用的方法
//返回的是组的索引
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {

    NSLog(@"title:%@",title);

   NSInteger a = [_allKeys indexOfObject:title];

    return a + 2;

}
时间: 2024-11-09 07:31:17

电话本索引【表视图】的相关文章

jdbc电话本项目

整体思路:在登陆之后才能查看自己的电话本,电话本中包含用户名,联系人名字,电话,性别,分类: 1.登陆注册页面--数据库User表,注册登陆使用 2.电话本的前段显示,用表格和表单, 3.创建存取的电话本的表的类,实现各种setget方法及构造方法 4.电话本需要查询,删除,添加,修改的功能,创建java文件实现这些方法 5.创建各种方法的servlet,实现这些功能, 注意:进行非空验证,还有就是在电话本的存储的表中要有隐藏的id,通过前台传入id,作为主键去判断实现那些方法,在登陆之后要注意

【整理】SQLServer查询各种数据库对象(表,索引,视图,图表,存储过程等)

首先明确数据库对象的定义:数据库对象定义数据库内容的结构.它们包含在数据库项目中,数据库项目还可以包含数据生成计划和脚本. 常见的数据库对象包括:表,索引,视图,图表,缺省值,规则,触发器,存储过程,函数等 1.sys.objects视图 数据库中创建的每一个对象都对应表中的一行,但不包括DDL触发器,查询触发器应该使用sys.triggers 常见的不同类型对象在sys.objects中的区分: 类型 type列 type_desc列 FOREIGN KEY 约束 F FOREIGN_KEY_

查询SQLServer2005中某个数据库中的表结构、索引、视图、存储过程、触发器以及自定义函数

查询SQLServer2005中某个数据库中的表结构.索引.视图.存储过程.触发器以及自定义函数 2013-03-11 09:05:06|  分类: SQL SERVER|举报|字号 订阅 (1)查询SQLServer2005中某个数据库中的表结构 SELECT TOP 100 PERCENT --a.id,CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名,CASE WHEN a.colorder = 1 THEN isnull(f.v

ios tableview的索引条将表视图往左边挤

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang SC"; color: #008400 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Menlo; color: #3e1e81 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Menlo; color: #008400 } span.s

数据库的数据类型、约束、索引、视图

数据库的数据类型.约束.索引.视图 一.数据类型 (一)数值型数据 整数 int,bigint,smallint 小数 float,real,decimal(长度,精度),numeric(长度,精度) 常用的:float(相当于C#中的double),decimal (二)字符数据 char(n) 最大存储量:8000英文字符,4000汉字:数量一定的字符用char(n)如身份证.学号,用n限制字符数量输入: varchar(n) 最大存储量:8000英文字符,4000汉字: 数量变化的字符用v

索引与视图

聚集索引和非聚集索引 聚集的作用就是将某一列(或是多列)的物理顺序改变为和逻辑顺序相一致,在SQL SERVER中,聚集索引的存储是以B树存储,B树的叶子直接存储聚集索引的数据, 因为聚集索引改变的是其所在表的物理存储顺序,所以每个表只能有一个聚集索引. 非聚集索引,本质上来说也是聚集索引的一种.非聚集索引并不改变其所在表的物理结构,而是额外生成一个聚集索引的B树结构,但叶子节点是对于其所在表的引用,这个引用分为两种,如果其所在表上没有聚集索引,则引用行号.如果其所在表上已经有了聚集索引,则引用

简单表视图

从现在开始进入表视图UITableView,同属UISrollView子类. 包括两个协议UITableViewDelegate, UITableViewDataSource 有一些概念 - 表头视图 header view - 表脚视图 footer view - 单元格 cell - 节 section - 节头 section header - 节脚 section footer 这里有一个可重复定义对象的概念,这是为了节约内存开销而设计,当屏幕翻动时,旧的单元格退出屏幕,新的进入. 如果

表视图搜索栏

一.效果 1. 启动程序:上面搜索栏.右边索引条 2. 点击表单元有警告框提示 3. 点击搜索栏输入内容可根据长短范围搜索 二.分析 1. 创建一个表视图,指定委托,实现表单元的显示 2. 创建一个显示搜索结果的模型,该模型也是表视图,遵循搜索结果更新协议,作为更新器 3. 创建一个搜索控制器,指定搜索结果控制器,并创建搜索栏,让搜索结果控制器实现同步更新协议,让搜索到的内容得以在搜索结果中更新 4. 在更新协议实现方法中配置搜索的逻辑 三.实现 1. 实现文件 2. Main.storyboa

表视图控制器(TableViewController)(三) 、 表视图搜索

1 乐库的设置界面 1.1 问题 tableView分为静态(static)和动态(dynamic),之前使用的都是动态的tableView,表视图的有多少分区.有多少行以及每一行显示的内容都不是固定的,都由数据模式来决定.而静态的tableView有多少分区.有多少行以及每一行显示的内容都是固定不变的. 静态tableView应用广泛,常用于各种应用软件的设置界面,本案例使用静态tableView完成乐库的设置界面,如图-1所示: 图-1 1.2 方案 由图-1可以看到该界面的显示内容是固定不