ios中 pickerView的用法

今天是一个特殊的日子(Mac pro 敲的 爽。。。 昨天到的)

//
//  QRViewController.m//

#import "QRViewController.h"

@interface QRViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
@property (weak, nonatomic) IBOutlet UILabel *fruitLable;//水果
@property (weak, nonatomic) IBOutlet UILabel *mainLabel;//主菜
@property (weak, nonatomic) IBOutlet UILabel *drinkLabel;//饮料
@property (nonatomic,strong) NSArray *foods;
@property (weak, nonatomic) IBOutlet UIPickerView *pickerView;
- (IBAction)ranDom;

@end

@implementation QRViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    for (int i=0; i<self.foods.count; i++) {
        [self pickerView:nil didSelectRow:0 inComponent:i];
    }
    //[self pickerView:nil didSelectRow:0 inComponent:0];
    //[self pickerView:nil didSelectRow:0 inComponent:1];
    //[self pickerView:nil didSelectRow:0 inComponent:2];
}
/**
 *懒加载数据
 */
- (NSArray *)foods
{
    if(_foods==nil){
        NSString *path=[[NSBundle mainBundle] pathForResource:@"foods" ofType:@"plist"];
        NSArray *arraylist=[NSArray arrayWithContentsOfFile:path];
        _foods=arraylist;
    }
    return _foods;
}
#pragma mark   -数据源方法
/**
 *一共多少列
 */
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return self.foods.count;
}
/**
 * 某一列显示多少行
 */
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    NSArray *subfoods=self.foods[component];
    return subfoods.count;
}

#pragma mark - 代理方法
/**
 *某一列中的某一行显示的数据
 */
- (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
{
    if(component==0){//水果
        self.fruitLable.text=self.foods[component][row];
    }else if(component==1){//主菜
        self.mainLabel.text=self.foods[component][row];
    }else if(component==2){//饮料
        self.drinkLabel.text=self.foods[component][row];
    }
}
/**
 *随机生成一个
 */
- (IBAction)ranDom {
    for (int i=0; i<self.foods.count; i++) {
        //每一行的总长度
        int count=[self.foods[i] count];
        //生成一个随机数
        int row=arc4random()%count;
        //设置pickerView选中的列的行
        [self.pickerView selectRow:row inComponent:i animated:YES];
        //设置Label的文字
        [self pickerView:nil didSelectRow:row inComponent:i];
    }

}

@end
时间: 2025-01-14 10:57:37

ios中 pickerView的用法的相关文章

IOS中NSSData常见用法

一.NSdata的概念 1.使用文件时需要频繁地将数据读入一个临时存储区,它通常称为缓冲区 2.NSdata类提供了一种简单的方式,它用来设置缓冲区,将文件的内容读入缓冲区,或者将缓冲区内容写到一个文件. 3.对于32位应用程序,NSdata缓存最多2GB 4.我们有两种定义 NSData(不可变缓冲区),NSMutableData(可变缓冲区) NSData *fileData; NSFileManager *fileManager = [[NSFileManager alloc]init];

IOS中NSNumber常见用法

一.NSnumber常见用法 NSNumber + (NSNumber *)numberWithInt:(int)value; + (NSNumber *)numberWithDouble:(double)value; - (int)intValue; - (double)doubleValue; -(float)floatValue; 二.使用 NSNumber * intNumber=[NSNumber numberWithInt:100]: NSNumber *floatNumber=[N

IOS中NSUserDefaults的用法(轻量级本地数据存储)

iOS数据保存 IOS中NSUserDefaults的用法(轻量级本地数据存储) IOS中NSUserDefaults的用法(轻量级本地数据存储),布布扣,bubuko.com

ios中NSUserDefaults的用法

ios中NSUserDefaults的用法 NSUserDefaults类提供了一个与默认系统进行交互的编程接口.NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等.默认系统允许应用程序自定义它的行为去迎合用户的喜好.你可以在程序运行的时候从用户默认的数据库中读取程序的设置.同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作.可以通过调用synchronize方法来使内存中的缓存与用户默认系统进行同步. NSUserDefa

IOS中TableView的用法

IOS中TableView的用法 一.UITableView 1.数据展示的条件 1> UITableView的所有数据都是由数据源(dataSource)提供的,所以要想在UITableView展示数据,必须设置UITableView的dataSource数据源对象 2> 要想当UITableView的dataSource对象,必须遵守UITableViewDataSource协议,实现相应的数据源方法 3> 当UITableView想要展示数据的时候,就会给数据源发送消息(调用数据源

iOS中block的用法 以及和函数用法的区别

ios中block的用法和函数的用法大致相同 但是block的用法的灵活性更高: 不带参数的block: void ^(MyBlock)() = ^{}; 调用的时候  MyBlock(); 带参数的block: int ^(MyBlock)(int,int) = ^(int a,int b){return a+b;} 调用MyBlock(5,6); 将block当作某个类的属性的写法 typedef void (^BlockOption)(); @property (nonatomic,ass

正则表达式语法与正则表达式在iOS中的常见用法

一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式达到字符串的复杂控制. 二.正则表达式的语法 看一个过滤纯数字的例子 - (BOOL)validateNumber:(NSString *) textString { NSString* number=@"^[0-9]+$"; NSPredicate *numberPre = [NSPre

正则表达式与正则表达式在ios中的常见用法

一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式达到字符串的复杂控制. 二.正则表达式的语法 看一个过滤纯数字的例子 - (BOOL)validateNumber:(NSString *) textString{    NSString* number=@"^[0-9]+$";    NSPredicate *numberPre = [

ios 中pickerView用法之国旗选择

QRViewController控制器 // // QRViewController.m // #import "QRViewController.h" #import "QRFlag.h" #import "QRFlagView.h" @interface QRViewController ()<UIPickerViewDataSource,UIPickerViewDelegate> @property (nonatomic,str