AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.rootViewController = [[UINavigationController alloc]initWithRootViewController:[[MyTableViewController alloc]initWithStyle:UITableViewStyleGrouped]];
[self.window makeKeyAndVisible];
return YES;
}
MyTableViewController.m
@property(nonatomic,strong)NSDictionary *dic;
@end
@implementation MyTableViewController
-(NSDictionary *)dic {
if (_dic == nil) {
_dic = @{
@"北京":@[@"东城",@"西城",@"朝阳"],
@"上海":@[ @"浦东", @"徐汇"],
@"广东":@[@"白云",@"越秀",@"东莞"]};
}
return _dic;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return self.dic.allKeys.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
switch (section) {
case 0:
return ((NSArray*)self.dic[@"北京"]).count;
case 1:
return ((NSArray*)self.dic[@"上海"]).count;
default:
return ((NSArray*)self.dic[@"广东"]).count;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"id"];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"id"];
}
switch (indexPath.section) {
case 0: { //case 中默认不能创建变量,如果需要创建变量必须加 { }
NSArray *array = self.dic[@"北京"];
cell.textLabel.text = array[indexPath.row];
} break;
case 1:{
NSArray *array = self.dic[@"上海"];
cell.textLabel.text = array[indexPath.row];
}break;
case 2:{
NSArray *array = self.dic[@"广东"];
cell.textLabel.text = array[indexPath.row];
}break;
}
return cell;
}
//如果 分区头 使用的是 View 的话,必须设置分区头的 高度
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 44;
}
-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UILabel *label = [[UILabel alloc]init];
label.frame = CGRectMake(0, 0, tableView.frame.size.width, 44);
//这里 使用的是 硬编码 问题非常大, 一但字典中的数据发生变化,那么这里就会出现问题
NSString *string = nil;
switch (section) {
case 0:
string = @"北京";
break;
case 1:
string = @"上海";
break;
case 2:
string = @"广州";
break;
}
label.text = string;
label.textAlignment = NSTextAlignmentCenter;
return label;
}