![]()
#import "ViewController.h"
@interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
@property (nonatomic,strong)NSArray *foods;
//显示水果
@property (weak, nonatomic) IBOutlet UILabel *fruitLabel;
//显示主食
@property (weak, nonatomic) IBOutlet UILabel *mainLabel;
//显示饮料
@property (weak, nonatomic) IBOutlet UILabel *drinkLable;
@property (weak, nonatomic) IBOutlet UIPickerView *pickerView;
//随机
- (IBAction)radom:(id)sender;
//确认
- (IBAction)certain:(id)sender;
//取消
- (IBAction)cancel:(id)sender;
@end
@implementation ViewController
//懒加载数组
-(NSArray *)foods{
if (_foods==nil) {
_foods=[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"foods" ofType:@"plist"]];
}
return _foods;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
for (int i=0; i<3; i++) {
[self pickerView:nil didSelectRow:0 inComponent:i];
}
}
//总共多少列
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return self.foods.count;
}
//总共多少行
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
NSArray *subFood=self.foods[component];
return subFood.count;
}
//第component列第row行显示文字内容
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return self.foods[component][row];
}
//选中第component列第row行
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
//选中行的文本显示对应的Label
if(component==0){
self.fruitLabel.text=self.foods[component][row];
}else if(component==1){
self.mainLabel.text=self.foods[component][row];
}else if(component==2){
self.drinkLable.text=self.foods[component][row];
}
}
//设置行高
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
return 35;
}
//随机一份套餐
- (IBAction)radom:(id)sender {
for (int component=0;component<self.foods.count;component++){
//第compnent列数组的总长度
int count=(int)[self.foods[component]count];
//旧的行号
int oldRow=(int)[self.pickerView selectedRowInComponent:component];
//第几行,默认旧行号与新行号相同
int row=oldRow;
//保证行号与上次不一样
while(row==oldRow){
row=arc4random()%count;
}
//让pickerView主动选中第compoent列的第row行
[self.pickerView selectRow:row inComponent:component animated:YES];
//设置label的文字
[self pickerView:nil didSelectRow:row inComponent:component];
}
}
- (IBAction)certain:(id)sender {
//提示用户点餐成功
UIAlertController *alertC=[UIAlertController alertControllerWithTitle:@"点餐成功" message:@"请稍后..." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *certain=[UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:nil];
[alertC addAction:certain];
[self presentViewController:alertC animated:YES completion:nil];
}
- (IBAction)cancel:(id)sender {
//直接初始化
for(int i=0;i<3;i++){
[self pickerView:nil didSelectRow:0 inComponent:i];
[self.pickerView selectRow:0 inComponent:i animated:YES];
}
}
@end