2016-1-3点菜系统demo的实现,pickerView的学习

//
//  ViewController.m
//  pickView
//
//  Created by Mac on 16/1/3.
//  Copyright © 2016年 Mac. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
@property (weak, nonatomic) IBOutlet UIPickerView *pickView;
@property (nonatomic, strong)NSArray *foods;
@property (weak, nonatomic) IBOutlet UILabel *fruitLable;
@property (weak, nonatomic) IBOutlet UILabel *mainfoodLable;
@property (weak, nonatomic) IBOutlet UILabel *drinkLable;
- (IBAction)randomPick;

@end

@implementation ViewController
- (NSArray *)foods
{
    if (!_foods) {
    NSString *path =  [[NSBundle mainBundle] pathForResource:@"foods.plist" ofType:nil];
        NSArray *array = [NSArray arrayWithContentsOfFile:path];
        _foods = array;
    }
    return _foods;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    [self pickerView:self.pickView didSelectRow:0 inComponent:0];
    [self pickerView:self.pickView didSelectRow:0 inComponent:1];
    [self pickerView:self.pickView didSelectRow:0 inComponent:2];

}
#pragma mark - 数据源方法
//返回总共多少列;
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return self.foods.count;
}
//返回每列多收行;
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    NSArray *array =  self.foods[component];
    return array.count;
}
#pragma mark - 代理方法
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    NSArray *array = self.foods[component];
    return array[row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
//    NSLog(@"component is %d,row is %d",component,row);
    NSArray *array = self.foods[component];
    NSString *str = array[row];
    switch (component) {
        case 0:
            self.fruitLable.text = str;
            break;
        case 1:
            self.mainfoodLable.text = str;
            break;
        case 2:
            self.drinkLable.text = str;
            break;
            default:
            break;
    }
}
#pragma mark - 随机点菜按钮
- (IBAction)randomPick {
//    找出总共多少列
    NSInteger countOfColumns = self.foods.count;
//    利用for循环找出每一列有多少行
    for (int i = 0; i < countOfColumns ; i ++) {
        NSArray *array = self.foods[i];
//        找出当前这一列有多少行;
        NSInteger countOfRows = array.count;
//        在这一列中随机产生一个数字;
        NSUInteger randomRow  = arc4random_uniform((int)countOfRows);
//        更改数据
        [self pickerView:self.pickView didSelectRow:randomRow inComponent:i];
        [self.pickView selectRow:randomRow inComponent:i animated:YES];
    }
}
@end
时间: 2025-01-04 23:22:41

2016-1-3点菜系统demo的实现,pickerView的学习的相关文章

UIPickerView应用--点菜系统

1 // 2 3 // ViewController.m 4 5 // 151005UI+01点菜系统 6 7 // 8 9 // Created by LongMa on 15/10/5. 10 11 // Copyright © 2015年 CZ. All rights reserved. 12 13 // 14 15 16 17 #import "ViewController.h" 18 19 20 21 @interface ViewController ()<UIPic

iOS开发 点菜系统 使用UIPickerView

利用UIPickerView实现一个简单的点菜界面,如下图所示.源码地址:https://github.com/xiaoLong1010/iOSAppDemo.git UIPickerView有两个协议UIPickerViewDataSource,UIPickerViewDelegate,它们为UIPickeView提供数据和代理.UIPickeView的三个component分别代表fruit,main,drink,选中某一行,菜名在下面显示.最上面的随机按钮,则实现随机点菜功能. 1.vie

点菜系统数据库课程设计

import java.awt.*; import java.sql.*; import java.awt.event.*; import java.util.Vector; import javax.swing.*; import java.sql.*; import javax.swing.border.EmptyBorder; public class test1 extends JFrame implements ActionListener { //private static fin

从金蝶、聚食汇、爱菜单,看智能点菜系统发展趋势

当电子点菜系统应用在餐饮业逐渐普及,标志着餐饮界酒店.餐厅的管理数字化.信息化地来临.金蝶.聚食汇.爱菜单......各类软件各有千秋. 相同点是能够在平板电脑.智能手机.触摸屏等进行软件再开发,使得传统菜谱能够多样化.精准化.即时化地变成电子菜谱,呈现于顾客眼前,让顾客有更舒服的用餐体验. 金蝶.聚食汇.爱菜单......这些软件,多少不一的还包含着酒店管理功能,有的甚至还能与互联网.手机来进行互动,使得酒店讯息的宣传推广效率也大大提高.在这越来越人性化服务的餐饮新时代,让我们共同来看看如今市

2014025689 《嵌入式系统程序设计》第五周学习总结

<嵌入式系统程序设计>第五周学习总结 一.6.5(标准I/O编程)主要涉及的函数及知识点 标准的I/O的三种缓冲存储:全缓冲.行缓冲.不带缓冲. 1. 全缓存:当填满标准I/O缓存后才进行实际的I/O操作 2. 行缓存:当输入或输出中遇到行结束符时,标准I/O库执行I/O操作 3. 不带缓存:标准I/O库不对字符进行缓冲 打开文件的三个标准函数:  fopen().fdopen()和 freopen(). -fopen()可以指定打开文件的路径和模式 函数原型:FILE * fopen(con

《Linux系统free命令的使用》学习笔记

free命令用于显示当前系统的内存空闲和使用情况,其中包括物理内存,交换分区内存,内核缓冲区内存以及高速缓存,free的参数报错一下: -b --字节的方式显示内存使用情况 [[email protected] ~]# free -b             total       used       free     shared    buffers     cachedMem:     521449472  138665984  382783488          0   146759

Microsoft Office 2016 for win10 全版本下载+注册激活_Office教程学习网

Microsoft Office 2016 for win10 全版本下载+注册激活_Office教程学习网 http://pan.baidu.com/s/1qWxdvT6

基于Web的制造追溯系统DEMO

写在前面 本文不贴任何代码,以图片为主,也许图片更直观,请各位园友谅解! 很久没有写过博客了,这是2016年的第一篇文章:最近主要是忙着完成公司的一个新项目,逛园子的时间都明显少了,只有下班回到家睡觉之前浏览一下首页的文章:也许这是借口,但却也是事实,以前每天凌晨1点之前从不会睡觉(逛论坛.搞程序等),现在下班回来只想睡觉,精力不够:白天在公司要做公司的项目(开弓没有回头箭,要做就必须做好),下班回来还需整合自己的一个Deom,仍然是与生产有关的,毕竟作者从参加工作以来几乎都是从事的生产制造方面

flask框架:简单的监控服务器的系统DEMO

前段时间应领导要求,需要开发一套服务端的资源监控的脚本,通过python脚本监控服务器的资源状态,将监控数据录入到数据库表,而后直接分析入库的统计结果生成趋势图表以供参考!大概花了一个多星期把整个系统写完,但是总觉得无法达到实时的监控确实是一个很大遗憾.因此在同事的的推荐下初步学习了一下flask框架,不过百度了好多文章,大部分文章和DEMO都无法满足我得需求.最后,通过CSDN小黑鹅的博客找到一点线索(博客地址如下),在他博客基础山整合了一下,自己写了一个学习的DEMO,帮助跟我一样的兄弟能够