UIPickerView
UIPickerView控件也是iPhone中比较常用到的一个控件,它通过转界面提供一系列多值选项,它向用户显示信息,也收集用户输入。
UIPickerView里⾯的组件数和组件里的
要使用UIPickerView就要遵守两种协议,
一个是UIPickerViewDelegate,另⼀种是UIPickerViewDataSource。
添加UIPickerView必须实现的代理⽅法: 1、列数:numberOfComponentsInPickerView; 2、行数:numberOfRowsInComponent;
添加一个pickerView的步骤:
1.实例化一个pickerView对象
UIPickerView *picker=[[UIPickerView alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
2,遵守两个协议,并设置代理 在.h文件里遵守协议<UIPickerViewDelegate,UIPickerViewDataSource>
picker.dataSource=self;
picker.delegate=self;
3.将控件添加在页面上
[self.view addSubview:picker];
实现两个必要方法。设置行数和组数
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return 4;
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 7;
}
//设置行高
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
return 70;
}
设置组宽
-( CGFloat ) pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
return 100;
}
设置每行标题内容
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
if (row==0) {
return @"hhhhhh";
}
return @"hello";
}
每次滑动后调用的方法
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
NSLog(@"deewrerwrew");
}
设置picker每行每组的view样式
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
if (component==0&&row==0) {
UIImageView *image=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 20, 30)];
image.image=[UIImage imageNamed:@"0"];
return image;
}
UIDatePicker
UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的⼦类,专门⽤于接受日期、时间和持续时长的输入。⽇期选取器的各列会按照指定的⻛格进⾏自动配置, 这样就让开发者不必关心如何配置表盘这样的底层操作。你也可以对其进⾏行定制,令其使⽤用任何范围的⽇日期。
UIDatePicker 依赖于 NSDate 类,需要掌握NSDate的基本转化方法
注意:选取器的高度始终是216像素,要确定分配了足够的空间来容纳。
⽇期/时间选取器支持4种不同模式的选择方式
UIDatePickerModeCountDownTimer
UIDatePickerModeDate
UIDatePickerModeDateAndTime
UIDatePickerModeTime
设置datePicker的时间差 (分钟)
_datePicker.minuteInterval = 6;
对datePicker添加事件
[ _datePicker addTarget:self action:@selector(fangFa:) forControlEvents:UIControlEventValueChanged ] ;(UIControlEventValueChanged的意思是当值改变的时候回调方法)
将控件添加在页面上
[ self.view addSubview:_datePicker ]
当datePicker值发生改变会回调的自定义方法
- ( void ) dateChange : ( UIDatePicker * ) sender {
NSDate * date = _datePicker.date ; //获取datePicker的时间
NSLog ( @" %@ " , date );
}
设置datePicker的最小时间
_datePicker.minimumDate=date;
设置datePicker的最大时间
_datePicker.maximumDate=date;