01、UIPickerView-案例1

来源:互联网 发布:冯文乐网络春晚 编辑:程序博客网 时间:2024/06/05 21:56
随机点餐案例
1、搭建界面
2、拖拽连线数据源和代理到控制器
3、懒加载数据-(NSArray *)foods{    if(_foods==nil){        NSString *path=[[NSBundle mainBundle] pathForResource:@"foods.plist" ofType:nil];        _foods=[NSArray arrayWithContentsOfFile:path];    }    return _foods;}4、实现数据源方法-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{    return 3;}-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{    return [self.foods[component] count];}5、实现代理方法-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{    return self.foods[component][row];}-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{    switch (component) {        case 0:            self.fruitLabel.text=self.foods[component][row];            break;        case 1:            self.mainFoodsLabel.text=self.foods[component][row];            break;        case 2:            self.drinkLabel.text=self.foods[component][row];            break;                    default:            break;    }}6、默认选中第一行- (void)viewDidLoad {    [super viewDidLoad];    for(int i=0; i<self.foods.count; i++){        [self pickerView:self.pickerView didSelectRow:0 inComponent:i];    }}7、给随机点餐设置点击事件- (IBAction)clickRandomBtn:(id)sender {    for(int i=0; i<self.foods.count; i++){        //生成随机数        u_int32_t random=arc4random_uniform((int)[self.foods[i] count]);        //防止生成随机数和原来的行号相同不跳动的情况        NSUInteger selectRow=[self.pickerView selectedRowInComponent:i];        while (random==selectRow) {            random=arc4random_uniform((int)[self.foods[i] count]);        }        // 让pickerView选中数据        [self.pickerView selectRow:random inComponent:i animated:YES];        //更新label        [self pickerView:self.pickerView didSelectRow:random inComponent:i];    }}


原创粉丝点击