首页 > 代码库 > UIPickerView 简单小结

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对象

openURL:

• UIApplication有个功能?十分强?大的openURL:?方法 - (BOOL)openURL:(NSURL*)url;

• openURL:?方法的部分功能有
? 打电话
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"]];

? 打开其他app程序 

 

3.delegate对象开始处理(监听)系统事件(没有storyboard)

* 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法

* 在application:didFinishLaunchingWithOptions:中创建UIWindow

* 创建和设置UIWindow的rootViewController

* 显示窗口

 

3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)

* 创建UIWindow

* 创建和设置UIWindow的rootViewController

* 显示窗口

 

程序的启动过程

 

infor.Plist中常见的key含义

  • 常见属性(红?色部分是?用?文本编辑器打开时看到的key)

  • ●  Localiztion native development region(CFBundleDevelopmentRegion)-本地化相关

  • ●  Bundle display name(CFBundleDisplayName)-程序安装后显?示的名称,限制在10-12个 字符,如果超出,将被显?示缩写名称

  • ●  Icon file(CFBundleIconFile)-app图标名称,?一般为Icon.png

  • ●  Bundle version(CFBundleVersion)-应?用程序的版本号,每次往App Store上发布?一个新

      版本时,需要增加这个版本号
  • ●  Main storyboard file base name(NSMainStoryboardFile)-主storyboard?文件的名称

  • ●  Bundle identifier(CFBundleIdentifier)-项?目的唯?一标识,部署到真机时?用到 

UIPickerView 简单小结