それから大抵rowで書いてるけど、わかりにくいんで、それぞれのピッカーの値をNSArrayでカスタムにいれているところまでの実装です。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if (textField == shokugyo) {
[self showPicker]; //ピッカービューを開く
return NO; //キーボードを非表示
}else{
return YES;
}
}
- (void)showPicker{
//下から出るアニメーション
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
[UIView setAnimationDelegate:self];
picker.frame = CGRectMake(0, 204, 320, 216);
[UIView commitAnimations];
}
- (void)hidePicker{
//pickerを隠す
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
[UIView setAnimationDelegate:self];
picker.frame = CGRectMake(0, 420, 320, 216);
[UIView commitAnimations];
}
//列の数
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
//行の数
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return 2;
}
//表示する値
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
NSArray *pickerData = [NSArray arrayWithObjects:@"ra", @"ran", nil];
return [pickerData objectAtIndex:row]; //row番号を指定
}
//選択時の変更処理
- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
NSArray *pickerData = [NSArray arrayWithObjects:@"ra", @"ran", nil];
shokugyo.text = [pickerData objectAtIndex:row]; //row番号のNSArrayから取り出す
[self hidePicker]; //ボタンがおされ、text_fieldに入力されたらピッカーを隠す
}
//ピッカービューの設定ここまで