Skip to content

Instantly share code, notes, and snippets.

@wwwins
Last active August 29, 2015 14:05
Show Gist options
  • Save wwwins/46ae748cede2f90f3275 to your computer and use it in GitHub Desktop.
Save wwwins/46ae748cede2f90f3275 to your computer and use it in GitHub Desktop.
UIPickerView to display TW states
//
// 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
//
// 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