一、UIPickerView
1. 屬性 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 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, 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;