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
- 206,UIPickView类
- UIPickView
- UIPickVIew
- UIPickView
- UIPickView
- UIPickView用法
- swift UIPickView
- UIPickView 使用实例
- UIPickView的使用
- UIPickView的使用
- UIPickView常用操作
- 修改UIPickView的高度
- 单列选择器 UIPickView
- iOS开发-------选择器(UIPickView)
- UIPickView和UIDatePicker(了解)
- UIPickView实现UIdatepicker效果
- 关于UIPickView的学习
- 简单的UIPickView功能
- LCD 基本知识
- c语言基础知识
- 【CF 327C】【弱渣终于a题了】翻译 & 题解
- 贝叶斯 算法 实例
- boost 库CMakeLists.txt配置
- 206,UIPickView类
- TSP
- 基于RTSP的流媒体播放器制作(2)
- jython使用入门
- Block的注意点
- Objective-C Runtime
- Java中整数溢出的问题:int i=1000000;i*i为何等于-727379968,Java是如何处理溢出的?
- Object-C--->Swift之(一)元组(tuple)类型
- IntelliJ IDEA,代码行宽度超出限制时设置自动换行