#import "ViewController.h"

@interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>

/*** 数据数组 ***/
    @property(nonatomic, strong) NSArray * foods;
@property (weak, nonatomic) IBOutlet UILabel *fruitLabel; @property (weak, nonatomic) IBOutlet UILabel *mainFoodLabel;
@property (weak, nonatomic) IBOutlet UILabel *drinkLabel; @end @implementation ViewController //懒加载
- (NSArray *) foods{
    if(!_foods){
        _foods = [NSArray arrayWithContentsOfFile:[ [NSBundle mainBundle] pathForResource:@"foods.plist" ofType:nil ] ];
    }
    return _foods;
} - (void)viewDidLoad {
    [super viewDidLoad];
    
    //让label们显示当前的数据
    self.fruitLabel.text = self.foods[0][0];
    self.mainFoodLabel.text = self.foods[1][0];
    self.drinkLabel.text = self.foods[2][0];
} #pragma mark - <UIPickerViewDataSource, UIPikerViewDelegate>
//返回多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    
    return self.foods.count;
} //设置每一个component显示多少行
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
  //  NSLog(@"--- pickerView numberOfRowsInComponent");
    NSArray * subArr = self.foods[component];
    return subArr.count;
} #pragma mark - <代理>
//component列row行显示什么文字
-  (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    NSLog(@"--- pickerView titleForRow");
    return  self.foods[component][row];
} //监听用户选中
- (void ) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
   // NSLog(@"%zd的%zd", component, row);
    
    //水果
    if(component == 0 ){
        self.fruitLabel.text = self.foods[component][row];
    }else if( component == 1 ){
    //主菜
       self.mainFoodLabel.text =self.foods[component][row];
    }else if( component == 2){
        //饮料
       self.drinkLabel.text = self.foods[component][row];
    }
    
} @end

知识点:

在XCode中 commond + option + 回车

参考资料:

http://www.cnblogs.com/songliquan/p/4564963.html

http://www.cnblogs.com/qingche/p/3565243.html

轻量级应用开发之(07) UIPickerView使用的更多相关文章

  1. 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录

     前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...

  2. 基于flask的轻量级webapi开发入门-从搭建到部署

    基于flask的轻量级webapi开发入门-从搭建到部署 注:本文的代码开发工作均是在python3.7环境下完成的. 关键词:python flask tornado webapi 在python虚 ...

  3. iOS开发-数据选择UIPickerView

    UIPickerView开发一般选择区域或者分级数据的时候会使用到,类似于前端中用到树状结构,不过PC上一般都是从上到下的分级,使用UIPickView是从左到右实现,可以动态的设置UIPickVie ...

  4. Kotlin的Lambda表达式以及它们怎样简化Android开发(KAD 07)

    作者:Antonio Leiva 时间:Jan 5, 2017 原文链接:https://antonioleiva.com/lambdas-kotlin/ 由于Lambda表达式允许更简单的方式建模式 ...

  5. React Native 开发之 (07) 常用组件-View

    掌握了React Native的组件就可以使用IOS的原生组件和API. 一 View组件 就像开发web应用程序中,需要使用很多的HTML标签.例如 div,form.但是在基于DIV+CSS布局的 ...

  6. 【转载】利用jetty+Eclipse实现超轻量级web开发

    之前一直使用maven的jetty插件.今天换种方式. 使用下面介绍的方式你只有一个java project就行. 开发环境更简单,debug也更方便,不需要remote debug的方式,jetty ...

  7. Web开发笔记 #07# Swagger Editor

    Swagger Editor是一款可以用yaml格式进行RESTful API设计.可视化.测试的工具,并且能够实时看到自动生成的文档.效果大概是这样的↓ 根据官方网站介绍,如果是团队的话,建议用在线 ...

  8. iOS开发技巧 - 使用UIPickerView来选择值

    (Swift) import UIKit class ViewController: UIViewController, UIPickerViewDataSource { var picker: UI ...

  9. 使用Vue.js初次真正项目开发-2018/07/14

    一.组件化 使用Vue.js进行开发,按照MVVM模式,围绕数据为核心,进行开发. 开发过程根据业务和功能组件化,组件化一方面让我们开发思路更加清晰,另一方面对于数据的处理和控制变得更加简单,毕竟一个 ...

  10. TERSUS无代码开发(笔记07)-简单实例手机端后台逻辑开发

    提交申请逻辑开发 1.添加父级对象引用(从父级对象中获取前端输入框的值) 1.设计数据库表(表名和字段名称不能用中文) 2.设计置数据库主键(可设联合主键) 3.传值形成数据实列处理 4.服务器端处理 ...

随机推荐

  1. 13SpringMvc_限定某个业务控制方法,只允许GET或POST请求方式访问

    这篇文章要实现的功能是:在一个Action中,有些业务方法只能是post提交上来的才能执行,有些方法是只能get提交上来的才能执行. 比如上篇文章中的UserAction.java(代码如下) pac ...

  2. 03SpringMvc_自定义的spring.xml配置文件和逻辑视图名

    这篇文章的目的是实现Struts2中一种形式(封装视图的逻辑名称),在Struts2中Action处理后会返回"SUCCESS"这样,然后根据"SUCCESS" ...

  3. yum标准化安装nginx最新版

    yum标准化安装nginx最新版 cat > /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.o ...

  4. U3D Debug.log的问题

    今天在测试有yield有关的问题时,发现Debug.log()是异步输出机制.不一定会在调用后立即执行. 在C++有类似问题:std::cout 也不一定会立即输出,加上"\n"或 ...

  5. 一个背景图实现自定义spinner样式

    如下界面:由一个spinner两个EditText一个Button实现,为了保持界面的统一性,需要把默认的spinner样式改成类似下面的样式. xml文件布局如下图 这里用一个LinerLayout ...

  6. Audrion小车实验过程

    Audrion小车实验过程 一.实验过程 拷贝光盘文件,安装驱动及Arduino软件,观看了教学视频,明白了软件操作界面的各类按钮的含义,进行了事例的上传实验. 接下来就进行了小车的安装工作,这部分不 ...

  7. TableCell高度的控制

    TableCell高度的控制 计算并指定行高rowHeight 强制指定:self.tableView.rowHeight = 88 或实现UITableViewDelegate.tableView( ...

  8. 深入探索Java 8 Lambda表达式

    2014年3月,Java 8发布,Lambda表达式作为一项重要的特性随之而来.或许现在你已经在使用Lambda表达式来书写简洁灵活的代码.比如,你可以使用Lambda表达式和新增的流相关的API,完 ...

  9. WebAPI2使用Autofac实现IOC属性注入完美解决方案

    一.前言 只要你是.NETer你一定IOC,IOC里面你也会一定知道Autofac,上次说了在MVC5实现属性注入,今天实现在WebApi2实现属性注入,顺便说一下autofac的程序集的注入方式,都 ...

  10. Swift与Objective-c 混编CocoaPods 引入第三方库遇到的问题 (一)

    最近Swift 这么火也想尝试着用一下.考虑到Swift 出来的时间也不长.还有就是就是苹果更新的过于平凡 暂时还是不要将现有项目都用swift开发. 先来看看我遇到的问题: 问题一.