iOS——选择视图 UIPickerView

一、UIPickerView

1. 属性

1)数据源对象

@property(nullable,nonatomic,weak)id<UIPickerViewDataSource> dataSource; 


2)代理对象

@property(nullable,nonatomic,weak)id<UIPickerViewDelegate>   delegate; 


3)设置是否有选中标记(以高亮背景为选中)

@property(nonatomicBOOL 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

1) 设置一个 UIPickerView 对象中的组数(必须实现)

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;


2)设置每一个组的行数(必须实现)

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

以上两个方法是必须实现的,也就是说,当在屏幕上显示一个 UIPickerView 对象时,必须通过这两个方法指明组数和行数,才能显示出一个 UIPickerView 对象


3. UIPickerViewDelegate

1)设置每一个组数的宽度

- (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,  // 显示定时器
};


2. 设置本地化属性;默认为 [NSLocale currentLocale],如果设置为 nil 则返回默认值

@property (nullable, nonatomic, strong) NSLocale * locale; 

本地化属性封装了关于语言和文化的层次,如日期的格式信息;

如果设备的 “设置” 中地区选择 “中国” 时,那么 [NSLocale currentLocale].localeInentifier 返回的是 @"zh_CN"


3. 设置日历属性;默认为 [NSCalendar currentCalendar],如果设置为 nil 则返回默认值

@property (null_resettable, nonatomic, copyNSCalendar * 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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值