206,UIPickView类

来源:互联网 发布:lns是什么社交软件 编辑:程序博客网 时间:2024/04/20 09:27

ViewController.m:

#import "ViewController.h"


#define kFontSize 20


@interface ViewController () <UIPickerViewDataSource,UIPickerViewDelegate>


//数据

@property (nonatomic,strong)NSArray *foodsList;


//控件

@property (nonatomic,strong)UIButton *randBtn;

@property (nonatomic,strong)UIPickerView *pickView;

@property (nonatomic,strong)UILabel *fruitLabel;

@property (nonatomic,strong)UILabel *mainLabel;

@property (nonatomic,strong)UILabel *drinksLabel;


@end


@implementation ViewController


//获取数据

- (NSArray *)foodsList{

    if (_foodsList ==nil) {

        _foodsList = [NSArrayarrayWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"foods"ofType:@".plist"]];

    }

    return _foodsList;

}


//创建控件,并设置属性与方法

- (UIButton *)randBtn{

    if (_randBtn ==nil) {

        _randBtn = [[UIButtonalloc] initWithFrame:CGRectMake(10,0, 44, 44) ];

        [_randBtnsetTitle:@"随机"forState:UIControlStateNormal];

        [_randBtnsetTitleColor:[UIColorblueColor] forState:UIControlStateNormal];

        [_randBtnsetTitleColor:[UIColorgrayColor] forState:UIControlStateHighlighted];

        [_randBtnaddTarget:selfaction:@selector(random)forControlEvents:UIControlEventTouchUpInside];

    }

    return_randBtn;

}


- (UIPickerView *)pickView{

    if (_pickView ==nil) {

        _pickView = [[UIPickerViewalloc]initWithFrame:CGRectMake(0,80, self.view.bounds.size.width,100)];

        _pickView.dataSource =self;

        _pickView.delegate =self;

        [self.viewaddSubview:_pickView];

    }

    return_pickView;

}


- (UILabel *)fruitLabel{

    if (_fruitLabel ==nil) {

        _fruitLabel = [[UILabelalloc] initWithFrame:CGRectMake(70,291, 100, kFontSize)];

        _fruitLabel.font = [UIFontsystemFontOfSize:kFontSize];

        [self.viewaddSubview:_fruitLabel];

    }

    return_fruitLabel;

}


- (UILabel *)mainLabel{

    if (_mainLabel ==nil) {

        _mainLabel = [[UILabelalloc] initWithFrame:CGRectMake(70,321, 100, kFontSize)];

        _mainLabel.font = [UIFontsystemFontOfSize:kFontSize];

        [self.viewaddSubview:_mainLabel];

    }

    return_mainLabel;

}


- (UILabel *)drinksLabel{

    if (_drinksLabel ==nil) {

        _drinksLabel = [[UILabelalloc] initWithFrame:CGRectMake(70,351, 100, kFontSize)];

        _drinksLabel.font = [UIFontsystemFontOfSize:kFontSize];

        [self.viewaddSubview:_drinksLabel];

    }

    return_drinksLabel;

}



- (void)createUI{

    //上部分控件

    UIView *view = [[UIViewalloc]initWithFrame:CGRectMake(0,20, self.view.bounds.size.width,44)];

    view.backgroundColor = [UIColorgrayColor];

    [self.viewaddSubview:view];

    UILabel *titleLabel = [[UILabelalloc] init];

    titleLabel.text = @"点菜系统";

    titleLabel.font = [UIFontsystemFontOfSize:25];

    titleLabel.textColor = [UIColorredColor];

    [titleLabel sizeToFit];

    titleLabel.center = CGPointMake(view.center.x,20);

    [view addSubview:titleLabel];

    [view addSubview:self.randBtn];

    

    //中部控件

    [self pickView];

    

    //下部分控件

    

    UILabel *fruitTip = [[UILabelalloc] init];

    fruitTip.text = @"水果:";

    fruitTip.font = [UIFontsystemFontOfSize:kFontSize];

    [fruitTip sizeToFit];

    fruitTip.center = CGPointMake(40, 300);

    [self.viewaddSubview:fruitTip];

    

    UILabel *mainTip = [[UILabelalloc] init];

    mainTip.text = @"主食:";

    mainTip.font = [UIFontsystemFontOfSize:kFontSize];

    [mainTip sizeToFit];

    mainTip.center = CGPointMake(40, 330);

    [self.viewaddSubview:mainTip];

    

    UILabel *drinksTip = [[UILabelalloc] init];

    drinksTip.text = @"饮料:";

    drinksTip.font = [UIFontsystemFontOfSize:kFontSize];

    [drinksTip sizeToFit];

    drinksTip.center = CGPointMake(40, 360);

    [self.viewaddSubview:drinksTip];

    

    [selffruitLabel];

    [selfmainLabel];

    [selfdrinksLabel];

    

}


- (void)viewDidLoad {

    [superviewDidLoad];

    

    //界面搭建

    [self createUI];

    

    //初始化数据

    for (int i =0; i < 3; i ++) {

        [selfpickerView:self.pickViewdidSelectRow:0inComponent:i];

    }

}


#pragma mark - 设置数据源

//返回多少个组件(列数)

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{

    return self.foodsList.count;

}


//返回每一个组件的行总数

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

    NSArray *arr = self.foodsList[component];

    return arr.count;

}


////使用字符串显示内容

//- (nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

//    NSArray *arr = self.foodsList[component];

//    return arr[row];

//}



//使用控件显示内容

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullableUIView *)view {

    UILabel *label = nil;

    //创建或获取可重用的view

    if (label == nil) {

        label = [[UILabel alloc] init];

    }else{

        label = (UILabel *)view;

    }

    

    //设置数据

    NSArray *arr = self.foodsList[component];

    label.text = arr[row];

    label.textAlignment =NSTextAlignmentCenter;

    if (component == 0) {

        label.textColor = [UIColorredColor];

    }else if(component ==1){

        label.textColor = [UIColorblueColor];

    }else{

        label.textColor = [UIColorgreenColor];

    }

    

    return label;

}


//滚动选择停止后,执行该方法

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

     NSArray *arr = self.foodsList[component];

    if (component == 0) {

        self.fruitLabel.text = arr[row];

    }else if(component ==1){

        self.mainLabel.text = arr[row];

    }else{

        self.drinksLabel.text = arr[row];

    }

}


////设置列宽

//- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{

//    return 121;

//}

//

////设置行高

//- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{

//    return 100;

//}


- (void)random{

    int component = (int)self.foodsList.count;

    for (int i =0; i < component; i ++) {

        NSArray *arr = self.foodsList[i];

        int oldRow = [self.pickViewselectedRowInComponent:i];

        

        int newRow = arc4random_uniform(arr.count);

        while (oldRow == newRow) {

            newRow = arc4random_uniform(arr.count);

        }

        

        [selfpickerView:selfdidSelectRow:newRow inComponent:i];

        [self.pickViewselectRow:newRow inComponent:ianimated:YES];

    }

}

@end



0 0
原创粉丝点击