UIDatePicker
UIDatePicker:是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作。你也可以对其进行定制,令其使用任何范围的日期。
UIDatePicker初始化:
UIDatePicker *datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(30, 300, 0, 0)];
[datePicker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];//添加触发事件
[self.view addSubview:datePicker];
UIDatePicker常用设置
setLocale:设置地区
[datePicker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"]];
setCalendar:设置datePicker的日历(默认为当天)
[datePicker setCalendar:[NSCalendar currentCalendar]];
setDatePickerMode:设置时间模式,默认UIDatePickerModeDateAndTime
[datePicker setDatePickerMode:UIDatePickerModeDate];
setCountDownDuration:设置倒计时的秒数
[datePicker setCountDownDuration:2*60];
setTimeZone:设置时区
[datePicker setTimeZone:[NSTimeZone localTimeZone]];
设置最大,最小日期
//设置一个时间戳
NSTimeInterval timeInterval = 60;
NSDate *minDate = [[NSDate alloc]initWithTimeIntervalSinceNow:-timeInterval];
NSDate *maxDate = [[NSDate alloc]initWithTimeIntervalSinceNow:timeInterval];
//设置最大,最小日期
datePicker.minimumDate = minDate;
datePicker.maximumDate = maxDate;
设置分钟间隔
datePicker.minuteInterval = 5;
取出日期
NSDate *select = datePicker.date;
UIPickerView
//初始化一个pickerView
UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 436, 414, 300)];
//设置背景色
pickerView.backgroundColor = [UIColor whiteColor];
//设置代理
pickerView.delegate = self;
pickerView.dataSource = self;
[self.view addSubView:pickerView];```
##UIPickerViewDataSource代理方法
-numberOfComponentsInPickerView:设置列的返回数量(必须实现)
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 3;
}```
-pickerView:numberOfRowsInComponent:设置列里边组件的个数 component:组件(必须实现)
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
//如果是第一列
if (component == 0)
{
return 10;
}
//如果是第二列
else if (component == 1)
{
return 5;
}
else
{
return 3;
}
}```
##UIPickerViewDelegate代理方法
返回组件的标题:有三个方法都可以用,不同方法的返回值不同
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if (component == 0) {
return @"第一列";
} else if (component == 1) {
return @"第二列";
} else {
return @"第三列";
}
}```
pickerView:didSelectRow:inComponent:选择器选择的方法 row:被选中的行
//选择第一列执行的方法
if (component == 0) {
NSLog(@"1");
}
//选择第二列执行的方法
else if (component == 1) {
NSLog(@"2");
}
else {
NSLog(@"3");
}
}```
pickerView:widthForComponent:设置组件的宽度
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
{
if (component == 0) {
return 100;
} else if (component == 1) {
return 200;
} else {
return 100;
}
}```
pickerView:rowHeightForComponent:设置列里边组件的高度
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
if (component == 0) {
return 20;
} else if (component == 1) {
return 25;
} else {
return 30;
}
}```
网友评论