I love iPhone, Android, Cocos2d-x
[iPhone 開発メモ] UIPickerView の使用方法
UIPickerView の使用方法のメモです。UITableView に使い方は似ています。
- numberOfComponentsInPickerView で何列にするか指定
- pickerView: numberOfRowsInComponent で列のセル数を指定
- pickerView: titleForRow: forComponent でそれぞれの列、セルのラベルを指定
- pickerView: didSelectRow: inComponent で Picker を動かした後の処理をする
という流れです。
IB で View に UIPickerView を配置する。

UIPickerView を配置
PickerViewController.h
#import <UIKit/UIKit.h>
@interface PickerViewController : UIViewController <UIPickerViewDelegate>{
IBOutlet UIPickerView *picker;
}
@property (nonatomic, retain) UIPickerView *picker;
@end
PickerViewController.m
#import "PickerViewController.h"
@implementation PickerViewController
@synthesize picker;
- (void) pickerView: (UIPickerView*)pView didSelectRow:(NSInteger) row inComponent:(NSInteger)component {
NSLog(@"row=%d, component=%d", row, component);
int row1 = [picker selectedRowInComponent:0];
int row2 = [picker selectedRowInComponent:1];
int row3 = [picker selectedRowInComponent:2];
NSLog(@"selected %d, %d, %d", row1, row2, row3);
}
- (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 3;
}
- (NSInteger) pickerView: (UIPickerView*)pView numberOfRowsInComponent:(NSInteger) component {
return 5*(component+1);
}
- (NSString*)pickerView: (UIPickerView*) pView titleForRow:(NSInteger) row forComponent:(NSInteger)component {
return [NSString stringWithFormat:@"%d - %d",component, row];
}
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
picker.delegate = self;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)dealloc {
[super dealloc];
}
@end
IB で Outlet を接続すれば OK です。

UIPickerView の縦と幅のサイズは固定です。ホイールの幅とセルの高さは調節可能です。
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component {
return 30.0f;
}
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
return 80.0f;
}

ホイールの幅とセルの高さを調整
関連する投稿
4 comments
コメントをどうぞ
Additional comments powered by BackType
[...] [iPhone 開発メモ] UIPickerView の使用方法 | Sun Limited Mt. UIPickerView (tags: iphone-dev sdk.UIPickerView) [...]
[...] ? ???? UIPickerView – ?/? ?? ??? ??? ??, ????? ?? [iPhone 開発メモ] UIPickerView の使用方法 UIPickerView iPad?? UIDatePicker, UIPickerView [...]
[...] 手抜きと言われようが何だろうが情報が散逸して重複しても情報量ないしなぁと思うのでこの記事見れば使えるようになるんじゃないかとご紹介。 IB使わないなら、IBOutletとIBで定義してる部分を代行すればいいので、alloc、init(initWithFrameではないのに注意)かまして、delegateとdatasourceを設定すればあとは一緒。 UIView派生クラスなので、普通にaddSubViewで張り付ければOK。表示座標が設定したければinit後にframeを取ってきてorigin.xとorigin.yを変えて再設定すればいい。 UIPickerViewを複数使うなら(今月のゴメンナサイでも触れたけど)tagを設定してswitch?case分岐で対応するとかがいいのではないかと。 共有:TwitterFacebookGoogle +1 カテゴリー: iPhoneSDK, プログラム 作成者: RizaSTAR パーマリンク [...]
Proxies Buy…
UIPickerView ã?®ä?¿ç”¨æ??æ??ã?®ã?¡ã?¢ã?§ã?™ã??UITableView ã??ä?¿ã??æ??ã?¯ä??ã?¦ã??ã??ã?™ã?? numberOfComponentsInPickerView…