ModifyShippingAddressView.m 4.17 KB
//
//  ModifyShippingAddressView.m
//  Lighting
//
//  Created by 曹云霄 on 16/5/5.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "ModifyShippingAddressView.h"

@implementation ModifyShippingAddressView

{
    NSMutableArray *provinces;         //城市大数组
    NSArray *cities;                   //城市小数组
    NSString *provincesString;         //省份
    NSString *cityString;              //城市
    NSString *cityIDstring;            //城市ID
    NSString *_cityCode;               //城市编码
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code
}
*/

- (void)awakeFromNib
{
    [super awakeFromNib];
    [self uiConfigAction];
}

#pragma mark -UI
- (void)uiConfigAction
{
    self.cityPickerView.delegate = self;
    self.cityPickerView.dataSource = self;
    NSString *path = [[NSBundle mainBundle] pathForResource:@"city" ofType:@"json"];
    NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    provinces = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    cities  = [[provinces objectAtIndex:0] objectForKey:@"list"];
}



#pragma mark -城市选择器代理方法
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 2;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)componen
{
    switch (componen) {
        case 0:
        {
            return [provinces count];
        }
            break;
        case 1:
        {
            return [cities count];
        }
            break;
            
        default:
            break;
    }
    return 0;
}


- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    switch (component)
    {
        case 0:
            return [[provinces objectAtIndex:row] objectForKey:@"name"];
            break;
        case 1:
            return [[cities objectAtIndex:row] objectForKey:@"name"];
            break;
        default:
            return nil;
            break;
    }
}


- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    switch (component)
    {
        case 0:
            cities  = [[provinces objectAtIndex:row] objectForKey:@"list"];
            [self.cityPickerView selectRow:0 inComponent:1 animated:NO];
            [self.cityPickerView reloadComponent:1];
            provincesString = [[provinces objectAtIndex:row] objectForKey:@"name"];
            cityString = [[cities objectAtIndex:0] objectForKey:@"name"];
            _cityCode = [[cities objectAtIndex:0] objectForKey:@"code"];//城市编码
            
            break;
        case 1:
            
            cityString = [[cities objectAtIndex:row] objectForKey:@"name"];
            cityIDstring = [[cities objectAtIndex:row] objectForKey:@"code"];
            _cityCode = [NSString stringWithFormat:@"%@",[[cities objectAtIndex:row] objectForKey:@"code"]];//城市编码
            
            break;
            
        default:
            break;
    }
    
    if ([self.delegate respondsToSelector:@selector(citySelected:WithprovincesString:)]) {
        [self.delegate citySelected:cityString WithprovincesString:provincesString];
    }
    
}


- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
    UILabel* pickerLabel = (UILabel*)view;
    if (!pickerLabel){
        pickerLabel = [[UILabel alloc] init];
        pickerLabel.adjustsFontSizeToFitWidth = YES;
        pickerLabel.textColor = kMainBlueColor;
        pickerLabel.textAlignment = NSTextAlignmentCenter;
        [pickerLabel setBackgroundColor:[UIColor clearColor]];
        [pickerLabel setFont:[UIFont boldSystemFontOfSize:15]];
    }
    // Fill the label text here
    pickerLabel.text=[self pickerView:pickerView titleForRow:row forComponent:component];
    return pickerLabel;
}



@end