MainViewController.h
@interface RootViewController : UIViewController<UITableViewDelegate,UITableViewDataSource> @property(nonatomic, retain)NSDictionary *dic; @property(nonatomic, retain)NSArray *allKeys;
- (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;
}
原文:http://blog.csdn.net/pengyuan_d/article/details/40615721