Last active
August 29, 2015 14:05
-
-
Save wwwins/46ae748cede2f90f3275 to your computer and use it in GitHub Desktop.
UIPickerView to display TW states
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ViewController.h | |
// | |
// Created by wwwins on 2014/6/30. | |
// Copyright (c) 2014年 isobar. All rights reserved. | |
// | |
#import <UIKit/UIKit.h> | |
@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> | |
@property (weak, nonatomic) IBOutlet UIPickerView *pickerView; | |
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ViewController.m | |
// | |
// Created by wwwins on 2014/6/30. | |
// Copyright (c) 2014年 isobar. All rights reserved. | |
// | |
#import "ViewController.h" | |
#define NUM_OF_COMPONETS (2) | |
#define COMPONENT1 (0) | |
#define COMPONENT2 (1) | |
@interface ViewController () | |
@property NSArray *pickerArray; | |
@property NSArray *subPickerArray; | |
@property NSDictionary *dicPicker; | |
@end | |
@implementation ViewController | |
- (void)viewDidLoad | |
{ | |
[super viewDidLoad]; | |
[self initPicker]; | |
} | |
- (void)didReceiveMemoryWarning | |
{ | |
[super didReceiveMemoryWarning]; | |
// Dispose of any resources that can be recreated. | |
} | |
#pragma mark - picker | |
- (void)initPicker | |
{ | |
_pickerArray = [NSArray arrayWithObjects:@"台北市",@"基隆市",@"新北市",@"宜蘭縣",@"新竹市",@"新竹縣",@"桃園縣",@"苗栗縣",@"台中市",@"彰化縣",@"南投縣",@"嘉義市",@"嘉義縣",@"雲林縣",@"台南市",@"高雄市",@"澎湖縣",@"金門縣",@"屏東縣",@"台東縣",@"花蓮縣", nil]; | |
_dicPicker = [NSDictionary dictionaryWithObjectsAndKeys: | |
[NSArray arrayWithObjects:@"中正區",@"中山區",@"大安區",@"萬華區",@"信義區",@"北投區",@"內湖區",@"文山區",@"大同區",@"松山區",@"士林區",@"南港區", nil], @"台北市", | |
[NSArray arrayWithObjects:@"仁愛區",@"中正區",@"安樂區",@"七堵區",@"信義區",@"中山區",@"暖暖區", nil], @"基隆市", | |
[NSArray arrayWithObjects:@"萬里區",@"板橋區",@"深坑區",@"瑞芳區",@"平溪區",@"貢寮區",@"坪林區",@"永和區",@"土城區",@"樹林區",@"三重區",@"泰山區",@"蘆洲區",@"八里區",@"三芝區",@"金山區",@"汐止區",@"石碇區",@"雙溪區",@"新店區",@"烏來區",@"中和區",@"三峽區",@"鶯歌區",@"新莊區",@"林口區",@"五股區",@"淡水區",@"石門區", nil], @"新北市", | |
[NSArray arrayWithObjects:@"宜蘭市",@"礁溪鄉",@"員山鄉",@"三星鄉",@"五結鄉",@"蘇澳鎮",@"頭城鎮",@"壯圍鄉",@"羅東鎮",@"大同鄉",@"冬山鄉",@"南澳鄉", nil], @"宜蘭縣", | |
[NSArray arrayWithObjects:@"新竹市", nil], @"新竹市", | |
[NSArray arrayWithObjects:@"竹北市",@"新豐鄉",@"關西鎮",@"寶山鄉",@"竹東鎮",@"橫山鄉",@"北埔鄉",@"湖口鄉",@"新埔鎮",@"芎林鄉",@"五峰鄉",@"尖石鄉",@"峨眉鄉", nil], @"新竹縣", | |
[NSArray arrayWithObjects:@"中壢市",@"平鎮市",@"楊梅市",@"觀音鄉",@"龜山鄉",@"大溪鎮",@"大園鄉",@"龍潭鄉",@"新屋鄉",@"桃園市",@"八德市",@"復興鄉",@"蘆竹鄉", nil], @"桃園縣", | |
[NSArray arrayWithObjects:@"竹南鎮",@"三灣鄉",@"獅潭鄉",@"通霄鎮",@"苗栗市",@"頭屋鄉",@"大湖鄉",@"銅鑼鄉",@"西湖鄉",@"頭份鎮",@"南庄鄉",@"後龍鎮",@"苑裡鎮",@"造橋鄉",@"公館鄉",@"泰安鄉",@"三義鄉",@"卓蘭鎮", nil], @"苗栗縣", | |
[NSArray arrayWithObjects:@"中區",@"南區",@"北區",@"東區",@"西區",@"北屯區",@"南屯區",@"西屯區",@"太平區",@"大里區",@"霧峰區",@"烏日區",@"豐原區",@"后里區",@"石岡區",@"東勢區",@"和平區",@"新社區",@"潭子區",@"大雅區",@"神岡區",@"大肚區",@"沙鹿區",@"龍井區",@"梧棲區",@"清水區",@"大甲區",@"外埔區",@"大安區", nil], @"台中市", | |
[NSArray arrayWithObjects:@"彰化市",@"花壇鄉",@"鹿港鎮",@"線西鄉",@"伸港鄉",@"社頭鄉",@"埔心鄉",@"大村鄉",@"田中鎮",@"田尾鄉",@"溪州鄉",@"二林鎮",@"芳苑鄉",@"芬園鄉",@"秀水鄉",@"福興鄉",@"和美鎮",@"員林鎮",@"永靖鄉",@"溪湖鎮",@"埔鹽鄉",@"北斗鎮",@"埤頭鄉",@"竹塘鄉",@"大城鄉",@"二水鄉", nil], @"彰化縣", | |
[NSArray arrayWithObjects:@"南投市",@"草屯鎮",@"國姓鄉",@"仁愛鄉",@"名間鄉",@"水里鄉",@"魚池鄉",@"竹山鎮",@"中寮鄉",@"埔里鎮",@"集集鎮",@"信義鄉",@"鹿谷鄉", nil], @"南投縣", | |
[NSArray arrayWithObjects:@"嘉義市", nil], @"嘉義市", | |
[NSArray arrayWithObjects:@"番路鄉",@"竹崎鄉",@"中埔鄉",@"水上鄉",@"太保市",@"東石鄉",@"民雄鄉",@"溪口鄉",@"布袋鎮",@"梅山鄉",@"阿里山鄉",@"大埔鄉",@"鹿草鄉",@"朴子市",@"六腳鄉",@"新港鄉",@"大林鎮",@"義竹鄉", nil], @"嘉義縣", | |
[NSArray arrayWithObjects:@"斗南鎮",@"虎尾鎮",@"褒忠鄉",@"台西鄉",@"麥寮鄉",@"林內鄉",@"莿桐鄉",@"二崙鄉",@"水林鄉",@"四湖鄉",@"大埤鄉",@"土庫鎮",@"東勢鄉",@"崙背鄉",@"斗六市",@"古坑鄉",@"西螺鎮",@"北港鎮",@"口湖鄉",@"元長鄉", nil], @"雲林縣", | |
[NSArray arrayWithObjects:@"中西區",@"南區",@"北區",@"安南區",@"歸仁區",@"左鎮區",@"楠西區",@"仁德區",@"龍崎區",@"佳里區",@"七股區",@"學甲區",@"新營區",@"白河區",@"六甲區",@"柳營區",@"善化區",@"山上區",@"安定區",@"東區",@"安平區",@"永康區",@"新化區",@"玉井區",@"南化區",@"關廟區",@"官田區",@"麻豆區",@"西港區",@"將軍區",@"北門區",@"後壁區",@"東山區",@"下營區",@"鹽水區",@"大內區",@"新市區", nil], @"台南市", | |
[NSArray arrayWithObjects:@"新興區",@"前金區",@"苓雅區",@"鹽埕區",@"鼓山區",@"旗津區",@"前鎮區",@"三民區",@"楠梓區",@"小港區",@"左營區",@"仁武區",@"大社區",@"岡山區",@"路竹區",@"阿蓮區",@"田寮區",@"燕巢區",@"橋頭區",@"梓官區",@"彌陀區",@"永安區",@"湖內區",@"鳳山區",@"大寮區",@"林園區",@"鳥松區",@"大樹區",@"旗山區",@"美濃區",@"六龜區",@"內門區",@"杉林區",@"甲仙區",@"桃源區",@"那瑪夏區",@"茂林區",@"茄萣區", nil], @"高雄市", | |
[NSArray arrayWithObjects:@"馬公市",@"西嶼鄉",@"望安鄉",@"七美鄉",@"白沙鄉",@"湖西鄉", nil], @"澎湖縣", | |
[NSArray arrayWithObjects:@"金沙鎮",@"金湖鎮",@"金寧鄉",@"金城鎮",@"烈嶼鄉",@"烏坵鄉", nil], @"金門縣", | |
[NSArray arrayWithObjects:@"屏東市",@"三地門鄉",@"霧台鄉",@"瑪家鄉",@"九如鄉",@"里港鄉",@"高樹鄉",@"鹽埔鄉",@"長治鄉",@"麟洛鄉",@"竹田鄉",@"內埔鄉",@"萬丹鄉",@"潮州鎮",@"泰武鄉",@"來義鄉",@"萬巒鄉",@"崁頂鄉",@"新埤鄉",@"南州鄉",@"林邊鄉",@"東港鎮",@"琉球鄉",@"佳冬鄉",@"新園鄉",@"枋寮鄉",@"枋山鄉",@"春日鄉",@"獅子鄉",@"車城鄉",@"牡丹鄉",@"恆春鎮",@"滿州鄉", nil], @"屏東縣", | |
[NSArray arrayWithObjects:@"台東市",@"蘭嶼鄉",@"卑南鄉",@"關山鎮",@"池上鄉",@"成功鎮",@"太麻里鄉",@"大武鄉",@"綠島鄉",@"延平鄉",@"鹿野鄉",@"海端鄉",@"東河鄉",@"長濱鄉",@"金峰鄉",@"達仁鄉", nil], @"台東縣", | |
[NSArray arrayWithObjects:@"花蓮市",@"新城鄉",@"秀林鄉",@"吉安鄉",@"壽豐鄉",@"鳳林鎮",@"光復鄉",@"豐濱鄉",@"瑞穗鄉",@"萬榮鄉",@"玉里鎮",@"卓溪鄉",@"富里鄉", nil], @"花蓮縣", | |
nil]; | |
_subPickerArray = [_dicPicker objectForKey:@"台北市"]; | |
self.pickerView.dataSource = self; | |
self.pickerView.delegate = self; | |
} | |
#pragma mark - picker delegate | |
- (int)numberOfComponentsInPickerView:(UIPickerView *)pickerView | |
{ | |
return NUM_OF_COMPONETS; | |
} | |
- (int)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component | |
{ | |
if (component == COMPONENT1) { | |
return [_pickerArray count]; | |
} | |
else { | |
return [_subPickerArray count]; | |
} | |
} | |
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component | |
{ | |
if(component == COMPONENT1) { | |
return [_pickerArray objectAtIndex:row]; | |
} | |
else { | |
return [_subPickerArray objectAtIndex:row]; | |
} | |
} | |
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component | |
{ | |
if (component == COMPONENT1) { | |
_subPickerArray = [_dicPicker objectForKey:[_pickerArray objectAtIndex:row]]; | |
[pickerView selectRow:COMPONENT1 inComponent:COMPONENT2 animated:YES]; | |
[pickerView reloadComponent:COMPONENT2]; | |
} | |
NSString * firstString = [_pickerArray objectAtIndex:[_pickerView selectedRowInComponent:COMPONENT1]]; | |
NSString * subString = [[_dicPicker objectForKey:[_pickerArray objectAtIndex:[_pickerView selectedRowInComponent:COMPONENT1]]] objectAtIndex:[_pickerView selectedRowInComponent:COMPONENT2]] ; | |
self.textFieldForSection.text = APPEND(firstString, subString); | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment