Interface Builderを使わずに
UIPickerViewを使う方法を紹介します
▼MyPickerViewController.h
<UIPickerViewDelegate, UIPickerViewDataSource>を指定します。
1 2 3 4 5 6 7 |
#import <UIKit/UIKit.h>
@interface MyPickerViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>
{
UIPickerView *pickerView;
}
@property (nonatomic, retain) UIPickerView *pickerView;
@end |
▼MyPickerViewController.m
dataSourse/delegate、列数/行数を指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
#import “MyPickerViewController.h”
@implementation MyPickerViewController
@synthesize pickerView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { }
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
//pickerViewを作成
//「delegate」と「dataSource」の指定が必要なのでそれも書いてます。
pickerView = [[[UIPickerView alloc] init] autorelease];
pickerView.center = self.view.center;
pickerView.delegate = self;
pickerView.dataSource = self;
[self.view addSubview:pickerView];
}
// 実装必須のメソッドです。列数を返します。
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView
{
return 3;
}
// 実装必須のメソッドです。行数を返します。
-(NSInteger)pickerView:(UIPicerView*)pickerView numberOfRowsInComponent:(NSInteger)component
{
if(component == 0){
return 5; // 1列目は5行
}else{
return 6; // 2列目は6行
}
}
// 表示する内容を返すメソッドです。
/行インデックス番号を返すように指定しています。
-(NSString*)pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [NSString stringWithFormat:@"%d", row];
}
- (void)didReceiveMemoryWarning{
[super didReceiveMemoryWarning];
}
- (void)dealloc {
[myTableView release];
[super dealloc];
}
@end |
Related posts: