iOS中的UIPickerView(选择器)
2016-04-14 00:00
555 查看
UIPickerView 选择器
#import "ViewController.h" @interface ViewController (){ NSMutableArray *nameArray; NSMutableArray *ageArray; UIPickerView *myPickerView; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //新建两个数组,存储滚轮里面的信息 nameArray = [[NSMutableArray alloc]initWithObjects:@"小明",@"小强",@"小红",@"小刚",@"小亮", nil]; ageArray = [[NSMutableArray alloc]initWithObjects:@"20", @"25", @"30", @"40", @"30", nil]; //新建一个滚轮选择器,并设置滚轮的位置和大小 myPickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-300, self.view.frame.size.width, 300)]; //设置myPickerView的颜色 myPickerView.backgroundColor = [UIColor yellowColor]; //扩展游戏:可以在myPickerView下面切一个圆形出来 myPickerView.layer.cornerRadius = 80; //让myPickerView可以被切圆角 myPickerView.layer.masksToBounds = YES; //滚轮自带的两个代理 myPickerView.delegate = self; myPickerView.dataSource = self; [self.view addSubview:myPickerView]; //默认显示的第几列(component)第几行(row),每列都需要自己设置(写一行) [myPickerView selectRow:1 inComponent:0 animated:YES]; [myPickerView selectRow:1 inComponent:1 animated:YES]; } //UIPickerView的代理方法,注意一定要在.h文件里面引入代理<UIPickerViewDelegate,UIPickerViewDataSource> //一共有多少列(必须实现) - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ return 2; } //每列有多少行(必须实现) - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ if (component == 0) { return nameArray.count; }else{ return ageArray.count; } } //每列的宽度 - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{ return 100; } //每行的高度 - (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{ return 40; } //每列滚轮上显示的内容 !!!注意,此方法与- (UIView *)pickerView:方法冲突,只能用一个 - (nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ if (component == 0) { return [nameArray objectAtIndex:row]; }else{ return [ageArray objectAtIndex:row]; } } //个性化字体设置 //- (nullable NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component{ // // //} //这个方法可以给滚轮添加一个背景色,也可以赋内容 !!!注意,此方法与- (nullable NSString *)pickerView:方法冲突,只能用一个 //添加view到component上 //- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(nullable UIView *)view{ // // UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 40)]; // // if (component == 0) { // myLabel.backgroundColor = [UIColor redColor]; // myLabel.text = [nameArray objectAtIndex:row]; // return myLabel; // }else{ // myLabel.backgroundColor = [UIColor blueColor]; // myLabel.text = [ageArray objectAtIndex:row]; // return myLabel; // } // //} //打印每次选择的内容,可以根据选择了哪个滚轮,分别写分支方法了 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ if (component == 0) { NSLog(@"%@", [nameArray objectAtIndex:row]); }else{ NSLog(@"%@", [ageArray objectAtIndex:row]); } }
相关文章推荐
- iOS中的UIProgressView(进度条)
- iOS中的UISegmentedControl(分段控制器)
- iOS中的UISwitch(开关)
- iOS中的UITabBarController(类似于微信首页,上面是标题,下面是联系人,通讯录等)
- Packet for query is too large (2353015 > 1048576).
- Android UI优化
- UITableView基础
- hdu-4126 Genghis Khan the Conqueror(最小生成树+树形dp)
- 设计模式之Builder模式
- 关于UICollectionView的headerView的问题
- Java continue 、break、标签
- add VNC console to KVM guests
- 奇异值分解(Singular Value Decomposition)
- ART 的 interpret-only模式源码及调用流程 & QuickCompiler后端调用流程
- 【6】mysql数据查询语言DQL(Data Query Language)①
- ios UITapGestureRecognizer 单指单击、单指多击、多指单击、多指多击事件操作
- LeetCode *** 300. Longest Increasing Subsequence
- iOS限定UITextField的输入格式
- (4)Java设计模式-建造者模式(Builder)
- 说说 UINavigationBar 中的 translucent 属性