iOS——選擇視圖 UIPickerView

來源:互聯網
上載者:User
一、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;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.