沒有點擊索引的時候的效果圖:
點擊索引後的效果圖:
代碼:
RootViewController.h
#import <UIKit/UIKit.h> @interface RootViewController : UIViewController <UITableViewDelegate,UITableViewDataSource> { UITableView * city; NSDictionary * dic; } @property(nonatomic,strong) NSArray * keyArray; @end
RootViewController.m
- (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--"); }