(素材源码)猫猫学IOS(二十)UI之UIPickerView_点菜系统
来源:互联网 发布:淘宝 app 版本 编辑:程序博客网 时间:2024/05/16 09:57
猫猫分享,必须精品
素材代码地址:http://download.csdn.net/detail/u013357243/8596279
原创文章,欢迎转载。转载请注明:翟乃玉的博客
地址:http://blog.csdn.net/u013357243?viewmode=contents
先看效果图 ##
代码
//// NJViewController.m// 01-点菜//// Created by apple on 14-6-3.// Copyright (c) 2014年 heima. All rights reserved.//#import "NJViewController.h"@interface NJViewController ()<UIPickerViewDataSource, UIPickerViewDelegate>@property (weak, nonatomic) IBOutlet UIPickerView *pickerView;/** * 随机按钮点击事件 */- (IBAction)randomFood:(UIButton *)sender;/** * 所有食物 */@property (nonatomic, strong) NSArray *foods;/** * 水果 */@property (weak, nonatomic) IBOutlet UILabel *fruitLabel;/** * 主菜 */@property (weak, nonatomic) IBOutlet UILabel *stapleLabel;/** * 饮料 */@property (weak, nonatomic) IBOutlet UILabel *drinkLabel;@end@implementation NJViewController- (void)viewDidLoad{ [super viewDidLoad]; // 设置默认选中的内容// self.fruitLabel.text = self.foods[0][0];// self.stapleLabel.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]; }}#pragma mark - UIPickerViewDataSource// 返回pickerView一共有多少列- (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView{// return 3; return self.foods.count;}// 返回pickerView的第component列有多少行- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{// return 4; // 1.获取对应列的数组 NSArray *subFoods = self.foods[component]; // 2.返回对应列的行数 return subFoods.count;}#pragma mark - UIPickerViewDelegate// 返回第component列的第row行显示什么内容- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ // 1.获取对应列的数组 NSArray *subFoods = self.foods[component]; // 2.获取对应行的标题 NSString *name = subFoods[row]; return name;}// 当选中了pickerView的某一行的时候调用// 会将选中的列号和行号作为参数传入// 只有通过手指选中某一行的时候才会调用- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{// NSLog(@"component = %d, row = %d", component, row); // 1.获取对应列对应行的数据 NSString *name = self.foods[component][row];// NSLog(@"name = %@", name); // 2.判断选择的是哪一列, 根据列号设置对应的数据 if (0 == component) { // 水果 self.fruitLabel.text = name; }else if (1 == component) { // 主菜 self.stapleLabel.text = name; }else { // 饮料 self.drinkLabel.text = name; }}#pragma mark - 懒加载- (NSArray *)foods{ if (_foods == nil) { NSString *fullPath = [[NSBundle mainBundle] pathForResource:@"foods.plist" ofType:nil]; _foods = [NSArray arrayWithContentsOfFile:fullPath]; } return _foods;}#pragma mark - 监听按钮点击- (IBAction)randomFood:(UIButton *)sender { // 让pickerView主动选中某一行 // 让pickerView选中inComponent列的Row行// [self.pickerView selectRow:1 inComponent:0 animated:YES]; /* [self.pickerView selectRow: arc4random() % 12 inComponent:0 animated:YES]; [self.pickerView selectRow: arc4random() % 15 inComponent:1 animated:YES]; [self.pickerView selectRow: arc4random() % 10 inComponent:2 animated:YES]; */// [self.foods objectAtIndex:0]; == self.foods[0];// [self.foods[0] count]; /* // 根据每一列的元素个数生成随机值 [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]; */ for (int component = 0; component < self.foods.count; component++) { // 获取对应列的数据总数 int total = [self.foods[component] count]; // 根据每一列的总数生成随机数(当前生成的随机数) int randomNumber = arc4random() % total; // 获取当前选中的行(上一次随机后移动到的行) int oldRow = [self.pickerView selectedRowInComponent:0];// NSLog(@"oldRow = %d", oldRow); // 比较上一次的行号和当前生成的随机数是否相同, 如果相同重新生成 while (oldRow == randomNumber) { randomNumber = arc4random() % total; } // 让pickerview滚动到某一行 [self.pickerView selectRow: randomNumber inComponent:component animated:YES]; // 通过代码选中某一行 [self pickerView:nil didSelectRow:randomNumber inComponent:component]; }}@end
ps:新建iOS交流学习群:304570962 可以加猫猫QQ:1764541256 或则微信znycat 让我们一起努力学习吧。
翟乃玉的博客
地址:http://blog.csdn.net/u013357243?viewmode=contents
13 4
- (素材源码)猫猫学IOS(二十)UI之UIPickerView_点菜系统
- 猫猫学IOS(二十)UI之UIPickerView_点菜系统
- AJ学IOS(20)UI之UIPickerView_点菜系统
- (素材源码)猫猫学IOS(十)UI之_NSTimer_ios计时器
- (素材源码)猫猫学IOS(二十六)UI之iOS抽屉效果小Demo
- (素材源码)猫猫学IOS(二十四)UI之注册案例
- (素材源码)猫猫学IOS(二十九)UI之Quartz2D自定义下载控件
- (素材源码)swanzhu学IOS(二)UI之_NSTimer
- (素材源码) 猫猫学IOS(五)UI之360等下载管理器九宫格UI
- (素材源码)猫猫学IOS(十六)UI之XIB自定义Cell实现团购UI
- (素材源码)猫猫学IOS(六)UI之iOS热门游戏_超级猜图
- (素材源码)猫猫学IOS(九)UI之UIScrollView代理触摸实现_图片缩放
- (素材源码)猫猫学IOS(十一)UI之图片自动轮播
- (素材源码) 猫猫学IOS(十二)UI之UITableView学习(上)LOL英雄联盟练习
- (素材源码)猫猫学IOS(十九)UI之QQ好友列表
- (素材源码)猫猫学IOS(十五)UI之曾经大热的打砖块小游戏
- (素材源码)猫猫学IOS(三十四)UI之Quartz2D画画板的实现
- (素材源码)猫猫学IOS(三十六)UI之手势事件旋转_缩放_拖拽
- ant使用总结(二):相关命令说明
- IOS 对象序列化(NSCoder)
- Android_NetworkInfo以及判断手机是否联网
- 转载和积累系列 - 高性能网络库Libevent初探
- Android音频实时传输与播放(一):写在开头
- (素材源码)猫猫学IOS(二十)UI之UIPickerView_点菜系统
- Gradle version 1.10 is required. Current version is 2.2.1 :此类问题的一次性解决方案(已验证)
- 组合数学
- 解决Perhaps you are running on a JRE rather than a JDK?问题
- Android网络编程(二)ConnectivityManager和NetworkInfo详解
- solr模糊查询
- ubuntu环境下安装MyEclipse 10.6
- dyld: Library not loaded: @rpath/libswiftCore.dylib
- NSString / NSData / char* 类型之间的转换