码迷,mamicode.com
首页 > 其他好文 > 详细

UI :使用 UIPickerView 来选择数据

时间:2014-10-09 19:30:27      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   使用   for   strong   文件   

问题:想让用户在程序中从一个列表中选择数据。 

通过 Picker view 可以显示一系列的值给用户,并且可以让用户选择其中一个。iPhone 中 Clock 程序里面的时间选择就是一个非常好的例子 

 .h文件:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>

@property(nonatomic,strong)UIPickerView *myPicker;

@end

.m:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.view.backgroundColor = [UIColor whiteColor];
    self.myPicker = [[UIPickerView alloc]init];
    self.myPicker.center = self.view.center;
    
    self.myPicker.delegate = self;//设置代理
    self.myPicker.showsSelectionIndicator = YES;
    [self.view addSubview:self.myPicker];
    //此时pickerView没有数据,效果不好.
    ///为选择器添加数据:首先给 picker view 指定一个 data source,然后确保 view controller 遵循相关的协议。UIPickerView 的 data source 实例必须遵循 UIPickerViewDataSource 协议。
}

//UIPickerViewDataSource @required协议方法的实现
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    //这个方法主要是用来为你的选择器添加组件的,如果你需要多个组件,你可以在这个里面进行添加.
    return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    //顾名思义,这个方法表示你的一个组件中有多少个选项。
    return 10;
}
//UIPickerViewDelegate 协议方法
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    NSString *result = nil;
    if ([pickerView isEqual:_myPicker]) {
        result = [NSString stringWithFormat:@"Row%ld",row+1];
    }
    return result;
}

如图:

bubuko.com,布布扣

我们现在不能检测到用户实际选择的项 ,获得用户选择的数据。我们可以通过调用 UIPickerViewselectedRowIncomponent:方法。 
 
如果程序在运行时,你需要修改picker view中的值,那么需要从data source和delegate 中 reload 相关数据。可以通过使用 reloadAllComponent:方法来强制重新加载所有数据,或者 使用 reloadComponent:方法来加载指定组件的数据。 

 

 

UI :使用 UIPickerView 来选择数据

标签:style   blog   http   color   io   使用   for   strong   文件   

原文地址:http://www.cnblogs.com/safiri/p/4013903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!