UIPickerView的用法总结

来源:互联网 发布:海报设计软件网页版 编辑:程序博客网 时间:2024/05/21 08:04

1.UIPickerView的初始化

pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0f, 200.0f, 320.0f, 216.0f)];
pickerView.delegate = self;  //指定Delegate
pickerView.showsSelectionIndicator = YES; //显示选中框


2.实现UIPickerViewDelegate和UIPickerViewDataSource

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; //返回列数
 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; //返回每列的最大行数
 
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; //每一列中每一行的具体内容
 
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component //选中哪一列哪一行
 
[mypicker selectRow:(NSInteger)3 inComponent:0 animated:YES];


一个示例:

1.在.h头文件里面添加以下代码:

[cpp] view plaincopy
  1. #import <UIKit/UIKit.h>  
  2.   
  3.   
  4. @interface PickerView : UIViewController {  
  5.     IBOutlet UIPickerView * mypickerView;//连接的时候记得连上delegate  
  6.     IBOutlet UILabel * mylabel;  
  7.       
  8.     NSArray *pickerViewData;//pickerView的数据  
  9. }  
  10.   
  11. @property(nonatomic,retain) UIPickerView * mypickerView;  
  12. @property(nonatomic,retain) UILabel * mylabel;  
  13. @property(nonatomic,retain) NSArray *pickerViewData;//注意加上这句  
  14.   
  15. -(IBAction) showSelectmessage;//按钮点击事件  
  16.   
  17. @end  

2.在xib文件里面添加一个pickerView,一个button,一个label,如下图所示,要实现的功能是在pickerView里面滚动选择某一项,然后点击“点我显示选择的信息”按钮将pickerView中选中的内容显示在最下面的label中:


3.连接各项,将view中的Picker View与mypickerView连接,将“点我显示选择的信息”button的Touch Up Inside事件与showSelectmessage方法相连,将view中label与mylabel相连,将view中Picker View的dataSource和delegate连接到File‘s Owner,如下图所示:


4.在viewDidLoad方法中添加如下代码,初始化pickerView的数据:

[cpp] view plaincopy
  1. - (void)viewDidLoad  
  2. {  
  3.     NSArray *array=[[NSArray alloc] initWithObjects:@"哈哈",  
  4.                     @"two",  
  5.                     @"three",  
  6.                     @"four",  
  7.                     @"five",  
  8.                     nil];  
  9.       
  10.     self.pickerViewData = array;//注意一定要写self,否则不对  
  11.       
  12.     [array release];  
  13.       
  14.     [super viewDidLoad];  
5.添加界面上按钮的点击事件方法,该方法将pickerView中选中的内容显示在label中:

[cpp] view plaincopy
  1. -(IBAction) showSelectmessage{  
  2.       
  3.     NSInteger row = [mypickerView selectedRowInComponent:0];  
  4.     NSString * mys = [pickerViewData objectAtIndex:row];  
  5.     mylabel.text = mys;  
  6.       
  7.       
  8. }  
6.实现如下方法,设置Picker View视图中的组件(列)数量:

[cpp] view plaincopy
  1. -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView  
  2. {  
  3.     return 1;  
  4. }  

7.实现如下方法,设置Picker View视图中显示的项(行)数:

[cpp] view plaincopy
  1. -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component  
  2. {  
  3.     return [pickerViewData count];  
  4. }  

8.实现如下方法,将pickerviewData数据填充到Picker View中:

[cpp] view plaincopy
  1. -(UIView *)pickerView:(UIPickerView *)pickerView  
  2.           titleForRow:(NSInteger)row  
  3.          forComponent:(NSInteger)component  
  4. {  
  5.       
  6.     return [pickerViewData objectAtIndex:row];  
  7. }  


原创粉丝点击