UIPickerView/UIApplication,uipickerview
一.UIPickerView
1.UIPickerView的常見屬性
// 資料來源(用來告訴UIPickerView有多少列多少行)
@property(nonatomic,assign) id<UIPickerViewDataSource> dataSource;
// 代理(用來告訴UIPickerView每1列的每1行顯示什麼內容,監聽UIPickerView的選擇)
@property(nonatomic,assign) id<UIPickerViewDelegate> delegate;
// 是否要顯示選中的指標
@property(nonatomic) BOOL showsSelectionIndicator;
// 一共有多少列
@property(nonatomic,readonly) NSInteger numberOfComponents;
2.UIPickerView的常見方法
// 重新重新整理所有列
- (void)reloadAllComponents;
// 重新重新整理第component列
- (void)reloadComponent:(NSInteger)component;
// 主動選中第component列的第row行
- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;
// 獲得第component列的當前選中的行號
- (NSInteger)selectedRowInComponent:(NSInteger)component;
3.資料來源方法(UIPickerViewDataSource)
// 一共有多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
// 第component列一共有多少行
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
4.代理方法(UIPickerViewDelegate)
// 第component列的寬度是多少
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;
// 第component列的行高是多少
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;
// 第component列第row行顯示什麼文字
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
// 第component列第row行顯示怎樣的view(內容)
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;
// 選中了pickerView的第component列第row行
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
二.UIDatePicker
1.常見屬性
// datePicker的顯示模式
@property (nonatomic) UIDatePickerMode datePickerMode;
// 顯示的地區語言
@property (nonatomic, retain) NSLocale *locale;
2.監聽UIDatePicker的選擇
* 因為UIDatePicker繼承自UIControl,所以通過addTarget:...監聽
三.程式啟動的完整過程
1.main函數
2.UIApplicationMain
* 建立UIApplication對象
* 建立UIApplication的delegate對象
3.delegate對象開始處理(監聽)系統事件(沒有storyboard)
* 程式啟動完畢的時候, 就會調用代理的application:didFinishLaunchingWithOptions:方法
* 在application:didFinishLaunchingWithOptions:中建立UIWindow
* 建立和設定UIWindow的rootViewController
* 顯示視窗
3.根據Info.plist獲得最主要storyboard的檔案名稱,載入最主要的storyboard(有storyboard)
* 建立UIWindow
* 建立和設定UIWindow的rootViewController
* 顯示視窗
/********************************/
四、UIApplication來管理狀態列
1、修改Info.plist的檔案:添加View controller-based status bar appearance, 並設定Boolean為NO
2、UIApplication的相關方法:
UIApplication *app = [UIApplication sharedApplication];
[app openURL:[NSURL URLWithString:@"tel://10086"]];
發簡訊
[app openURL:[NSURL URLWithString:@"sms://10086"]];
發郵件
[app openURL:[NSURL URLWithString:@"mailto://12345@qq.com"]];
開啟一個網頁資源
[app openURL:[NSURL URLWithString:@"http://ios.itcast.cn"]];