#import "CHViewController.h" @interface CHViewController () <UIPickerViewDataSource,UIPickerViewDelegate> - (IBAction)random:(UIButton *)sender; @property (weak, nonatomic) IBOutlet UIPickerView *pickerView; @property (strong,nonatomic) NSArray *foods; @property (weak, nonatomic) IBOutlet UILabel *fruitLabel; @property (weak, nonatomic) IBOutlet UILabel *stapleLabel; @property (weak, nonatomic) IBOutlet UILabel *drinkLabel; @end @implementation CHViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. for (int component = 0; component < self.foods.count; component++) { [self pickerView:nil didSelectRow:0 inComponent:component]; } } //懒加载foods - (NSArray *)foods{ if(!_foods){ NSString *path = [[NSBundle mainBundle] pathForResource:@"foods.plist" ofType:nil]; _foods = [NSArray arrayWithContentsOfFile:path]; } return _foods; } #pragma mark - UIPickerViewDataSource - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ NSLog(@"%d",self.foods.count); return self.foods.count; } - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ NSArray *array = self.foods[component]; return array.count ; } #pragma mark - UIPickerViewDelegate - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ NSArray *nameArray = self.foods[component]; NSString *name = nameArray[row]; return name; } - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ NSString *name = self.foods[component][row]; switch (component) { case 0: NSLog(@"水果:%@",name); _fruitLabel.text = name; break; case 1: NSLog(@"主菜:%@",name); _stapleLabel.text = name; break; case 2: NSLog(@"饮料:%@",name); _drinkLabel.text = name; break; default: break; } } - (IBAction)random:(UIButton *)sender { // [self.pickerView selectRow:arc4random()%12 inComponent:0 animated:YES]; // [self.pickerView selectRow:arc4random()%15 inComponent:1 animated:YES]; // [self.pickerView selectRow:arc4random()%10 inComponent:2 animated:YES]; for (int component = 0; component < self.foods.count; component++) { NSArray *array = self.foods[component]; int random = arc4random()%(array.count); NSLog(@"random:%d",random); [self.pickerView selectRow:random inComponent:component animated:YES]; [self pickerView:self.pickerView didSelectRow:random inComponent:component]; } } @end
可以把点菜的文字换成图片加文字的形式,更直观