3. UIPickerview 和 UIDatapicker 的基本使用

  • UIPickerView的基本使用

1.遵守数据源协议/代理协议

2.实现数据源方法

2.1分组(component) : 
//与tableview不同的是,即使只有一组也需要实现这个方法
- (NSInteger)numberOfComponentsInPickerView 

2.2每组有几列 : 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent 
   
2.3每列的内容可以返回 NSString 或者 UIView :  
//这两个方法在数据源和代理中都有,但是没有遵守代理协议,输入就没有提示
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow
-(UIView*)pickerView:(UIPickerView *)pickerView viewForRow

3.其他常用代理方法

 //手动滚动(某一列)停止时会调用的方法 
- (void)pickerView:(UIPickerView *)pickerView didSelectRow 

 //返回指定组当前选中的行数  : 
NSInteger row1 = [self.picView selectedRowInComponent:0];
  
//刷新指定的组(用于多组联动) :
[self.pickerView reloadComponent:1];
  
//代码实现滑动:
[self.pickerView selectRow:0 inComponent:1 animated:YES];
  • UIDatePicker的基本使用。

1 初始化

// 不用设置宽高,因为它的宽高是固定的
UIDatePicker *datePicker = [[UIDatePicker alloc] init];

1.1 常用设置

// 设置区域为中国简体中文
datePicker.locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"];
// 设置picker的显示模式:只显示日期
datePicker.datePickerMode = UIDatePickerModeDate;

1.2 日期范围

//可以通过设置mininumDate 和 maxinumDate 属性,来指定使用的日期范围。如果用户试图滚动到超出这一范围的日期,表盘会回滚到最近的有效日期。
两个方法都需要NSDate 对象作参数: 
1.     NSDate* minDate = [[NSDate alloc]initWithString:@"1900-01-01 00:00:00 -0500"];  
2.     NSDate* maxDate = [[NSDate alloc]initWithString:@"2099-01-01 00:00:00 -0500"];   
3.        
4.     datePicker.minimumDate = minDate;   
5.     datePicker.maximumDate = maxDate; 

如果两个日期范围属性中任何一个未被设置,则默认行为将会允许用户选择过去或未来的任意日期。这在某些情况下很有用处,比如,当选择生日时,可以是过去的任意日期,但终止与当前日期。如果你希望设置默认显示的日期,可以使用date属性:

  datePicker.date = minDate;  

此外,你还可以用setDate方法。如果选择了使用动画,则表盘会滚动到你指定的日期:

 [ datePicker setDate:maxDate animated:YES];

2 UIDatePicker 需要监听值的改变

[datePicker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];

UIDatePicker基本属性

1.Locale
设置DatePicker的地区,即设置DatePicker显示的语言。

// 1.跟踪所有可用的地区,取出想要的地区    
NSLog(@"%@", [NSLocale availableLocaleIdentifiers]);
    
// 2. 设置日期选择控件的地区
[datePicker setLocale:[[NSLocalealloc]initWithLocaleIdentifier:@"zh_Hans_CN"]];

效果:


3. UIPickerview 和 UIDatapicker 的基本使用_第1张图片
8CD6CE49-CFF8-4B26-BDF9-7A8BD1B52498.png
// 2) 设置日期选择控件的地区
[datePicker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"en_SC"]];

效果:

3. UIPickerview 和 UIDatapicker 的基本使用_第2张图片
B38D8AAB-0B39-4A40-A615-22D45E1E81EE.png

2.Calendar
设置DatePicker的日历。

//默认为当天。
[datePicker setCalendar:[NSCalendar currentCalendar]];

3.timeZone设置DatePicker的时区。

// 默认为设置为:
[datePicker setTimeZone:[NSTimeZone defaultTimeZone]];

4.date设置DatePicker的日期。

//默认设置为: 
[datePicker setDate:[NSDate date]];

5.minimumDate
设置DatePicker的允许的最小日期。

6.maximumDate
设置DatePicker的允许的最大日期。

7.countDownDuration
设置DatePicker的倒计时间.

// 1) 设置日期选择的模   
[self.datePicker setDatePickerMode:UIDatePickerModeCountDownTimer];        
      
// 2) 设置倒计时的时长   
// 注意:设置倒计时时长需要在确定模式之后指定   
// 倒计时的时长,以秒为单位   
[self.datePicker setCountDownDuration:10 * 60];

效果:

3. UIPickerview 和 UIDatapicker 的基本使用_第3张图片
28E7FC8F-5A12-4736-99F2-5FD0B7685A71.png

8.minuteInterval
可以将分钟表盘设置为以不同的时间间隔来显示分钟,前提是该间隔要能够让60整除。默认间隔是一分钟。如果要使用不同的间隔,需要改变 minuteInterval属性:

// 设置分钟间隔    
datePicker.minuteInterval = 15;

9.datePickerMode
9.1.UIDatePickerModeTime

// Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)显示小时,分钟和AM/PM,这个的名称是根据本地设置的
[datePicker setDatePickerMode:UIDatePickerModeTime];
3. UIPickerview 和 UIDatapicker 的基本使用_第4张图片
9.1.png

9.2 UIDatePickerModeDate

// Displays month, day, and year depending on the locale setting (e.g. November | 15 | 2007)显示年月日,名称根据本地设置的
[datePicker setDatePickerMode:UIDatePickerModeDate];
3. UIPickerview 和 UIDatapicker 的基本使用_第5张图片
9.2.png

9.3 默认是显示这种模式UIDatePickerModeDateAndTime

// Displays date, hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. Wed Nov 15 | 6 | 53 | PM)显示日期,小时,分钟,和AM/PM,名称是根据本地设置的
[datePicker setDatePickerMode:UIDatePickerModeDateAndTime];  
3. UIPickerview 和 UIDatapicker 的基本使用_第6张图片
9.3.png

9.4 UIDatePickerModeCountDownTimer

// Displays hour and minute (e.g. 1 | 53) 显示小时和分钟   
[datePicker setDatePickerMode:UIDatePickerModeCountDownTimer];
3. UIPickerview 和 UIDatapicker 的基本使用_第7张图片
9.4.png

你可能感兴趣的:(3. UIPickerview 和 UIDatapicker 的基本使用)