一,效果图。
二,工程图。
三,代码。
RootViewController.h
#import@interface RootViewController : UIViewController { UITableView * city; NSDictionary * dic;}@property(nonatomic,strong) NSArray * keyArray;@end
RootViewController.m
#import "RootViewController.h"@interface RootViewController ()@end@implementation RootViewController@synthesize keyArray;- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self;}- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. //初始化界面 [self initBackgroundView]; }#pragma -mark -functions-(void)initBackgroundView{ city = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 460-44) style:UITableViewStylePlain]; city.delegate = self; city.dataSource = self; [self.view addSubview:city]; dic = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"citydict" ofType:@"plist"]]; self.keyArray = [dic.allKeys sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:nil ascending:YES], nil]];}#pragma -mark -UITableViewDelegate-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return dic.count;}-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ NSArray * array = [dic objectForKey:[self.keyArray objectAtIndex:section]]; return array.count;}-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ return [self.keyArray objectAtIndex:section];}-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"ID"]; if(cell == nil){ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"ID"]; } cell.textLabel.text = [[dic objectForKey:[self.keyArray objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row]; return cell;}-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{ return self.keyArray;}-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ NSLog(@"---didSelectRowAtIndexPath--");}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}