学了一段时间,边学边忘,所以决定把学的过程和遇到的问题记录下来~~~共勉之。
一:纯PickerView的展示
代码:
.h文件的代码
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIPickerViewDelegate, UIPickerViewDataSource>
{
// 数据源的数组声明
NSArray *pickerArray;
}
@property (strong, nonatomic) IBOutlet UIPickerView *selectPicker;
@end
.m文件的代码
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
//组件的轮数
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
//返回组件行数,实际就是数据源数组的count
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return [pickerArray count];
}
//给组件设置每行的内容
-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [pickerArray objectAtIndex:row];
}
- (void)viewDidLoad {
[super viewDidLoad];
//数据源数组初始化
pickerArray = [NSArray arrayWithObjects:@"动物",@"植物",@"石头",@"天空",@"大海",@"星星",@"月亮",@"太阳", nil];
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
dataSource和dalegate一定要拖对了,刚开始我就拖到了view上,看了半天没发现,最后才发现,一定要拖到File’s Owner上,否则会报错。
不拖的话,在代码中实现也可以,在.m文件中初始化的时候加上
_selectPicker.delegate = self;
_selectPicker.dataSource = self;
刚开始学还是很痛苦的,各种报错,各种看不懂,各种不理解,慢慢来,加油!!!
补充:
获取组件的值
NSInteger row = [_selectPicker selectedRowInComponent:0];
NSString * mys = [pickerArray objectAtIndex:row];
mys就是当前选取的值