pickupView点菜系统

#import "LJFViewController.h"

@interface LJFViewController () 
//和tableView类似要遵循数据源方法,和代理方法
<UIPickerViewDataSource, UIPickerViewDelegate>
- (IBAction)randomFood;
@property (weak, nonatomic) IBOutlet UILabel *fruitLabel;
@property (weak, nonatomic) IBOutlet UILabel *mainLabel;
@property (weak, nonatomic) IBOutlet UILabel *drinkLabel;
@property (nonatomic, strong) NSArray *foods;
@property (weak, nonatomic) IBOutlet UIPickerView *pickerView;
@end

@implementation MJViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    // 初始化
//    self.fruitLabel.text = self.foods[0][0];
//    self.mainLabel.text = self.foods[1][0];
//    self.drinkLabel.text = self.foods[2][0];
//    [self pickerView:nil didSelectRow:0 inComponent:0];
//    [self pickerView:nil didSelectRow:0 inComponent:1];
//    [self pickerView:nil didSelectRow:0 inComponent:2];
    for (int component = 0; component < self.foods.count; component++) {
        [self pickerView:nil didSelectRow:0 inComponent:component];
    }
    NSLog(@"%@", [self foods]);
}

- (NSArray *)foods
{
    if (_foods == nil) {
        // _foods数组中装着3个数组
        _foods = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"foods" ofType:@"plist"]];
    }
    return _foods;
}

#pragma mark - 数据源方法
/**
 *  一共有多少列
 */
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return self.foods.count;
}

/**
 *  第component列显示多少行
 */
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    NSArray *subfoods = self.foods[component];
    return subfoods.count;
}

#pragma mark - 代理方法
/**
 *  第component列的第row行显示什么文字
 */
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return self.foods[component][row];
}

/**
 *  选中了第component列的第row行
 */
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if (component == 0) { // 水果
        self.fruitLabel.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)randomFood {
    for (int component = 0; component < self.foods.count; component++) {
        // 第component列数组的总长度
        int count = (int)[self.foods[component] count];
        // 之前的行号
        int oldRow = (int)[self.pickerView selectedRowInComponent:component];
        // 第几行(默认新的行号跟旧的行号一样)
        int row = oldRow;
//        arc4random_uniform(count)

        // 保证行数跟上一次不一样
        while (row == oldRow) {
            row = arc4random()%count;
        }

        // 让pickerView主动选中第compoent列的第row行
        [self.pickerView selectRow:row inComponent:component animated:YES];

        // 设置label的文字
        [self pickerView:nil didSelectRow:row inComponent:component];
    }
//    [self.pickerView selectRow:arc4random()%[self.foods[0] count] inComponent:0 animated:YES];
//    [self.pickerView selectRow:arc4random()%[self.foods[1] count] inComponent:1 animated:YES];
//    [self.pickerView selectRow:arc4random()%[self.foods[2] count] inComponent:2 animated:YES];
}
@end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【课程特点】1、231节大容量课程:包含了SwiftUI的大部分知识点,详细讲解SwiftUI的方方面面;2、15个超级精彩的实例:包含美食、理财、健身、教育、电子商务等各行业的App实例;3、创新的教学模式:手把手教您SwiftUI用户界面开发技术,一看就懂,一学就会;4、贴心的操作提示:让您的眼睛始终处于操作的焦点位置,不用再满屏找光标;5、语言简洁精练:瞄准问题的核心所在,减少对思维的干扰,并节省您宝贵的时间;6、视频短小精悍:即方便于您的学习和记忆,也方便日后对功能的检索;7、齐全的学习资料:提供所有课程的源码,在Xcode 11 + iOS 13环境下测试通过; 更好的应用,更少的代码!SwiftUI是苹果主推的下一代用户界面搭建技术,具有声明式语法、实时生成界面预览等特性,可以为苹果手机、苹果平板、苹果电脑、苹果电视、苹果手表五个平台搭建统一的用户界面。SwiftUI是一种创新、简单的iOS开发中的界面布局方案,可以通过Swift语言的强大功能,在所有的Apple平台上快速构建用户界面。 仅使用一组工具和API为任何Apple设备构建用户界面。SwiftUI具有易于阅读和自然编写的声明式Swift语法,可与新的Xcode设计工具无缝协作,使您的代码和设计**同步。自动支持动态类型、暗黑模式、本地化和可访问性,意味着您的**行SwiftUI代码已经是您编写过的非常强大的UI代码了。 
SlideMenuControllerSwift ======================== [![Platform](http://img.shields.io/badge/platform-ios-blue.svg?style=flat )](https://developer.apple.com/iphone/index.action) [![Language](http://img.shields.io/badge/language-swift-brightgreen.svg?style=flat )](https://developer.apple.com/swift) [![License](http://img.shields.io/badge/license-MIT-lightgrey.svg?style=flat )](http://mit-license.org) [![Issues](https://img.shields.io/github/issues/dekatotoro/SlideMenuControllerSwift.svg?style=flat )](https://github.com/dekatotoro/SlideMenuControllerSwift/issues?state=open) iOS Slide View based on iQON, Feedly, Google+, Ameba iPhone app. ![sample](Screenshots/SlideMenuControllerSwift.gif) ##Installation ####CocoaPods comming soon... ####Manually Add the `SlideMenuController.swift` file to your project. ##Usage ###Setup In your app delegate: ```swift func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // create viewController code... let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftViewController, rightMenuViewController: rightViewController) self.window?.rootViewController = slideMenuController self.window?.makeKeyAndVisible() return true } ``` If you want to use the custom option, please change the SlideMenuOption class. ```swift class SlideMenuOption { let leftViewWidth: CGFloat = 270.0 let leftBezelWidth: CGFloat = 16.0 let contentViewScale: CGFloat = 0.96 let contentViewOpacity: CGFloat = 0.5 let shadowOpacity: CGFloat = 0.0 let shadowRadius: CGFloat = 0.0 let shadowOffset: CGSize = CGSizeMake(0,0) let panFromBezel: Bool = true let animationDuration: CGFloat = 0.4 let rightViewWidth: CGFloat = 270.0 let rightBezelWidth: CGFloat = 16.0 let rightPanFromBezel: Bool = true let hideStatusBar: Bool = true let pointOfNoReturnWidth: CGFloat = 44.0 init() { } } ``` ###You can access from UIViewController ```swift self.slideMenuController()? ``` or ```swift if let slideMenuController = self.slideMenuController() { // some code } ``` ### add navigationBarButton ```swift viewController.addLeftBarButtonWithImage(UIImage(named: "hoge")!) viewController.addRightBarButtonWithImage(UIImage(named: "fuga")!) ``` ### open and close ```swift // Open self.slideMenuController()?.openLeft() self.slideMenuController()?.openRight() // close self.slideMenuController()?.closeLeft() self.slideMenuController()?.closeRight() ``` ## Requirements Requires iOS 7.0 and ARC. ## Features - Highly customizable - Complete example ## Contributing Forks, patches and other feedback are welcome. ## Creator [Yuji Hato](https://github.com/dekatotoro) [Blog](http://buzzmemo.blogspot.jp/) ## License SlideMenuControllerSwift is available under the MIT license. See the LICENSE file for more info.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值