字典数组

来源:互联网 发布:windows 10 介质 编辑:程序博客网 时间:2024/05/22 01:30

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];

    self.window.rootViewController = [[UINavigationControlleralloc]initWithRootViewController:[[MyTableViewControlleralloc]initWithStyle:UITableViewStyleGrouped]];

    [self.windowmakeKeyAndVisible];

    returnYES;

}

MyTableViewController.m

@property(nonatomic,strong)NSDictionary *dic;

@end


@implementation MyTableViewController


-(NSDictionary *)dic {

    if (_dic ==nil) {

        _dic =@{

                 @"北京":@[@"东城",@"西城",@"朝阳"],

                 @"上海":@[@"浦东",@"徐汇"],

                 @"广东":@[@"白云",@"越秀",@"东莞"]};

    }

    return_dic;

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    returnself.dic.allKeys.count;

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    switch (section) {

        case0:

            return ((NSArray*)self.dic[@"北京"]).count;

        case1:

            return ((NSArray*)self.dic[@"上海"]).count;

        default:

            return ((NSArray*)self.dic[@"广东"]).count;

    }

}



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:@"id"];

    if (cell ==nil) {

        cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"id"];

    }

    

    switch (indexPath.section) {

        case0: { //case 中默认不能创建变量,如果需要创建变量必须加 { }

            NSArray *array =self.dic[@"北京"];

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

        } break;

        case1:{

            NSArray *array =self.dic[@"上海"];

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

        }break;

        case2:{

            NSArray *array =self.dic[@"广东"];

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

        }break;

    }

    return cell;

}



//如果分区头使用的是 View的话,必须设置分区头的高度

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {

    return44;

}


-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

    UILabel *label = [[UILabelalloc]init];

    label.frame =CGRectMake(0,0, tableView.frame.size.width,44);

    //这里使用的是硬编码问题非常大,一但字典中的数据发生变化,那么这里就会出现问题

    NSString *string =nil;

    switch (section) {

        case0:

            string = @"北京";

            break;

        case1:

            string = @"上海";

            break;

        case2:

            string = @"广州";

            break;

    }

    label.text = string;

    

    label.textAlignment =NSTextAlignmentCenter;


    return label;

}



0 0
原创粉丝点击