一、UIPickerView
1. 属性
@property(nullable,nonatomic,weak)id<UIPickerViewDataSource> dataSource;
2)代理对象
@property(nullable,nonatomic,weak)id<UIPickerViewDelegate> delegate;
3)设置是否有选中标记(以高亮背景为选中)
@property(nonatomic) BOOL showsSelectionIndicator;
4)获得组数
@property(nonatomic,readonly)NSInteger numberOfComponents;
5)获得指定组的行数
- (NSInteger)numberOfRowsInComponent:(NSInteger)component;
6)获得指定组的每行大小
- (CGSize)rowSizeForComponent:(NSInteger)component;
7)获得指定组的每行视图;如果没有设置视图,就返回 nil
- (nullableUIView *)viewForRow:(NSInteger)row forComponent:(NSInteger)component;
8)重新加载所有的组
- (void)reloadAllComponents;
9)重新加载指定的组
- (void)reloadComponent:(NSInteger)component;
10)设置直接显示某组某行,并设置动画效果
- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;
11)返回在指定组中选中的行数;如果什么都没有选中,就返回 -1
- (NSInteger)selectedRowInComponent:(NSInteger)component;
2. UIPickerViewDataSource
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
2)设置每一个组的行数(必须实现)
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
以上两个方法是必须实现的,也就是说,当在屏幕上显示一个 UIPickerView 对象时,必须通过这两个方法指明组数和行数,才能显示出一个 UIPickerView 对象
3. UIPickerViewDelegate
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;
2)设置每一组的每一行的高度
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;
3)设置每一组、每一行的标题
- (nullableNSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
4)设置每一组每一行的视图
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullableUIView *)view;
5)当选中某一组、某一行时调用的方法
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
二、UIDatePicker
1. 属性
1)设置风格;默认为 UIDatePickerModeDateAndTime
@property (nonatomic)UIDatePickerMode datePickerMode;
typedef NS_ENUM(NSInteger, UIDatePickerMode) {
UIDatePickerModeTime, // 显示时间
UIDatePickerModeDate, // 显示日期
UIDatePickerModeDateAndTime, // 显示时间和日期
UIDatePickerModeCountDownTimer, // 显示定时器
};
@property (nullable, nonatomic, strong) NSLocale * locale;
本地化属性封装了关于语言和文化的层次,如日期的格式信息;
如果设备的 “设置” 中地区选择 “中国” 时,那么 [NSLocale currentLocale].localeInentifier 返回的是 @"zh_CN"
3. 设置日历属性;默认为 [NSCalendar currentCalendar],如果设置为 nil 则返回默认值
@property (null_resettable, nonatomic, copy) NSCalendar * calendar;
该属性的默认值对应用户当前的日历
4. 设置日期属性;默认值是当前 UIDatePicker 对象创建时的日期
@property (nonatomic, strong) NSDate * date;
在 UIDatePickerModeCountDownTimer 模式下,UIPickerView 对象从 0 开始,并且忽略此属性
该属性就是 UIPickerView 对象中显示的日期
5. 设置时区属性;默认值为 nil,使用 NSTimeZone 的 localTimeZone(本地时区) 作为当前时区,或者使用 calendar 属性所使用的时区作为当前时区
@property (nullable, nonatomic, strong) NSTimeZone * timeZone;
6. 设置最小能显示的时间;默认是 nil,nil 意味着没有时间的约束;当 minimumDate > maximumDate 时,该值被忽略;在定时器模式中,也会被忽略
@property (nullable, nonatomic, strong) NSDate * minimumDate;
7. 设置最大能显示的事件;默认是 nil
@property (nullable, nonatomic, strong) NSDate * maximumDate;
8. 设置倒计时的秒数;只能在倒计时模式中使用,如果在其他模式中会被忽略;默认是 0,最大是
23h: 59m: 59s (86,399s)
@property (nonatomic) NSTimeInterval countDownDuration;
9. 设置间隔时间,就是一次能调多少秒;默认是 1,最大是 30
@property (nonatomic) NSInteger minuteInterval;
10. 设置 date 属性的值,并设置动画
- (void)setDate:(NSDate *)date animated:(BOOL)animated;