iOS UI10_带分区的省市区

//
//  MainViewController.m
//  UI10_带分区的省市区
//
//  Created by dllo on 15/8/11.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import "MainViewController.h"
#import "SecondViewController.h"
@interface MainViewController ()<UITableViewDataSource,UITableViewDelegate>
@property(nonatomic,retain)NSMutableArray *proArr;
@property(nonatomic,retain)UITableView *tableView;
@end

@implementation MainViewController
-(void)dealloc
{
    [_proArr release];
    [super dealloc];
}
#pragma mark 如果在初始化方法里使用self.view,此时还没有创建self.view系统会自动调用loadview,创建一个self.view,从而改变VC的执行流程,所以我们只在初始化方法里初始化容器等数据部分,而不创建视图
//初始化方法
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        [self createData];
    }return self;
}
-(void)createData
{
    //文件的路径
    NSString *[email protected]"/Users/dllo/Desktop/上课内容 /UI10_带分区的省市区/UI10_带分区的省市区/area.txt";
    NSString *str =[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    NSArray *strArr=[str componentsSeparatedByString:@"\n"];
    self.proArr=[NSMutableArray array];
    //省市区数组
    for(NSString *temp in strArr){
        if (![temp hasPrefix:@" "]) {
            NSMutableDictionary *proDic=[NSMutableDictionary dictionary];
            [proDic setObject:temp forKey:@"proName"];
            NSMutableArray *cityArr=[NSMutableArray array];
            [proDic setObject:cityArr forKey:@"cityArr"];
            [self.proArr addObject:proDic];
        }else if ([temp hasPrefix:@"  "] && ![temp hasPrefix:@"    "])
        {
            NSMutableDictionary *cityDic=[NSMutableDictionary dictionary];
            [cityDic setValue:temp forKey:@"cityName"];
            NSMutableArray *zoneArr=[NSMutableArray array];
            [cityDic setValue:zoneArr forKey:@"zoneArr"];
            NSMutableDictionary *proDic=[self.proArr lastObject];
            NSMutableArray *cityArr=proDic[@"cityArr"];
            [cityArr addObject:cityDic];
        }else
        {
            NSMutableDictionary *proDic=[self.proArr lastObject];
            NSMutableArray *cityArr=proDic[@"cityArr"];
            NSMutableDictionary *cityDic=[cityArr lastObject];
            NSMutableArray *zoneArr=cityDic[@"zoneArr"];
            [zoneArr addObject:temp];
        }

    }

}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor=[UIColor cyanColor];
    self.navigationController.navigationBar.translucent=NO;
    self.navigationItem.title[email protected]"省";
    self.tableView=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height -64) style:UITableViewStylePlain];
    self.tableView.dataSource=self;
    self.tableView.delegate=self;
    [self.view addSubview:self.tableView];
    [self.tableView release];

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

    NSMutableArray *cityArr =self.proArr[section][@"cityArr"];
    return cityArr.count;
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
     return self.proArr.count;
}
//更多

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *newView=[[[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 20)] autorelease];
    newView.backgroundColor=[UIColor yellowColor];

    UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 70, 20)];
    [newView addSubview:label];
    [label release];
    label.text=self.proArr[section][@"proName"];

    UIButton *button=[UIButton buttonWithType:UIButtonTypeSystem];
    button.frame = CGRectMake(300, 0, 40, 20);
    [button setTitle:@"更多" forState:UIControlStateNormal];
    [newView addSubview:button];
    [button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

    return newView;
}

-(void)click:(UIButton *)button
{
    NSLog(@"da");
}

//创建cell,显示数据
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *[email protected]"reuse";
    UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:reuse];
    if (!cell) {
        cell =[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];
    }
    //省字典
    NSMutableDictionary *proDic=self.proArr[indexPath.section];
    NSMutableArray *cityArr=proDic[@"cityArr"];
    cell.textLabel.text=cityArr[indexPath.row][@"cityName"];

    return cell;
 }
//调到第二个页面

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    SecondViewController *secondVC=[[SecondViewController alloc] init];
    [self.navigationController pushViewController:secondVC animated:YES];
    [secondVC release];
}

//分区头标题
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return self.proArr[section][@"proName"];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end
//
//  SecondViewController.m
//  UI10_带分区的省市区
//
//  Created by dllo on 15/8/11.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor=[UIColor cyanColor];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 20:22:55

iOS UI10_带分区的省市区的相关文章

windows 7自带分区工具实现磁盘重分区

在使用电脑时,有时会感觉当前硬盘分区不合理,例如以前使用XP系统,只需10G左右的磁盘空间就够了,而后安装Windows 7,则需要20G左右的空间,如果C盘过小,则会影响Windows 7的正常运行,诸如分区魔法师(PQ)的软件不能与Windows 7兼容,我们完全可以使用Windows 7自带的分区工具,实现无损数据而对磁盘重新分区!下面虾虾就为朋友们介绍详细的分区方法: [一]启动磁盘管理1.在开始菜单中,右键点击『计算机』,在弹出的菜单中点击『管理』. 如出现用户帐户控制窗口,点击『继续

iOS 自带定位功能

第一步:导入头文件 #import <CoreLocation/CoreLocation.h> #import <CoreLocation/CLLocationManagerDelegate.h> 第二步:设置代理 CLLocationManagerDelegate 第三步:创建一个属性 @property(nonatomic, strong) CLLocationManager *locationManager; 第四步:初始化     //定位服务管理对象初始化     _lo

ios 自带xml 解析,TBXMLParser解析

今天看了下苹果xml 解析,写了个小demo 心想还是 在博客上写点东西吧,毕竟很久很久都没有上来了 先上个效果图把 接下来 看下 工程目录图吧 本demo 分两种解析模式,一是苹果自带的, 首先先看下苹果自带的吧,工程文件为 NoteXMLParser 文件 ,另一种解析模式 是 NotesTBXMLParser文件 NoteXMLParser.h 文件代码如下 : // // NoteXMLParser.h // TestXML // // Created by choni on 14-5-

iOS 自带刷新功能

这里只介绍UIRefreshControl的使用方法,虽然EGO已经用得挺舒服的了,但是官方给的.毕竟还是蛮简单的 ================================================== UIRefreshControl 具有一个默认的高度和宽度 一旦创建,便自动管理.只有当用户用力刷新才能刷新,尤其...那朵菊花,用力越大,转速越快,感觉还不错哦.(瞬间...邪恶了) 下面介绍一下如何使用:     self.refreshControl = [[UIRefres

Ubuntukylin-14.04-desktop( 不带分区)安装步骤详解

Ubuntukylin-14.04-desktop(带分区)安装步骤详解

IOS自带输入法中文不触发KEYUP事件导致vue双向绑定错误问题

先上图: 可以看到输入框中的内容和弹出框的内容不一致, <input class="am-fr labRight" id="txcode" type="text" placeholder="请输入纳税人识别号" v-model="invBuyer.TaxCode" /> 文本框使用的是vue的v-model双向绑定,在android中是ok的,在IOS上不行, 导致问题出现的原因是IOS自带输入

Hive带分区列的表更改列类型之坑

常见的一个场景是Hive里面一个带分区的表,原来是int类型的字段,后来发现数据超过了int的最大值,要改成bigint.或者是 bigint要改string或decimal.无论如何,对于带分区的表,要改列类型,有一个坑: 如果使用alter table t change column oldcol newcol bigint,即把int类型的oldcol改为bigint类型的newcol 这个时候,去读数据,应该还是NULL的. 这是因为每个分区Hive还会存一份元数据,于是两种解决方案:

iOS自带TTS技术的实现即语音播报

文本转语音技术, 也叫TTS, 是Text To Speech的缩写. iOS如果想做有声书等功能的时候, 会用到这门技术. 一,使用iOS自带TTS需要注意的几点: iOS7之后才有该功能 需要 AVFoundation 库 AVSpeechSynthesizer: 语音合成器, 可以假想成一个可以说话的人, 是最主要的接口 AVSpeechSynthesisVoice: 可以假想成人的声音 AVSpeechUtterance: 可以假想成要说的一段话 二,代码示例, 播放语音 //语音播报

新浪微博项目---首页技术点三.上拉刷新,下拉加载的实现(使用ios自带的小菊花实现)

一.上拉刷新,下拉加载的实现(使用ios自带的小菊花实现) 1.下拉刷新 #pragma mark ---集成下*拉刷新控件 -(void)setupDownRefresh { //1.添加刷新控件 UIRefreshControl *control = [[UIRefreshControl alloc] init]; //只有用户通过手动下拉刷新,才会触发UIControlEventValueChanged事件 [control addTarget:self action:@selector(