IOS 开发之PickerView文字和随机数的使用
2017-08-12 17:19
676 查看
IOS 开发之PickerView文字和随机数的使用
PickerView用于展示供选择的内容(例如日期选取、点菜等)。
有三种情况:
1.每一列都是独立的选取
2.右边的列受到左边列的影响
3.包含图片
PickerView和TableView类似,通过数据源来显示数据,与TableView同样地,让控制器称为其数据源。
但是PickerView的数据源仅仅提供行数和列数,在代理方法内才能设置内容。
通过两个数据源方法设置行和列数,通过一个代理方法来设定内容,注意component表示第几列:
这里的foods成员是一个复合数组,即NSArray内又有多个NSArray,每个内层的NSArray中放着一个类型的食物,不同内层NSArray之间代表不同类型的食物。
要得到这样的复合数组,可以直接建立,例如:
@[@[...],@[...],@[...]];
或者通过plist读取
#pragma mark - PickerView数据源方法 // returns the number of 'columns' to display. - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ return self.foods.count; } // returns the # of rows in each component.. - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ NSArray *foodArray = self.foods[component]; // component是列 return foodArray.count; } #pragma mark - PickerView代理方法 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ return self.foods[component][row]; }
要监听选择,只需要再实现一个代理方法:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ NSString *name = self.foods[component][row]; switch (component) { case 0: self.fruitLabel.text = name; break; case 1: self.mainLabel.text = name; break; case 2: self.drinkLabel.text = name; break; default: break; } }
一个细节:没有点选时的显示数据初始化:
间接利用上面的选择方法来初始化数据:每列都选中第0行,由于用不到pickerView本身,因此传入nil也无妨。
for (int i = 0; i < self.foods.count; i++) { [self pickerView:nil didSelectRow:0 inComponent:i]; }
Tip:键盘上方常常用导航工具条,用于切换上一项、下一项等内容。
直接获取当前的选取项:selectRowInComponent: 传入列号可以得到选中的是第几行。
随机数:
arc4random()可以产生0或者正整数,要产生0 ~ (x-1)的随机数,应该使用 arc4random( ) % x。
关于选择层次的设计(选择左边右边变化),是由代码实现的(更换列的数据)。
需要用到reloadAllComponents或者reloadComponent:方法。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
相关文章推荐
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- (三十)PickerView文字和随机数的使用
- iOS开发的一些小技术:让UIImage有缩放功能、控制log的输出、xcode修改文件注释、随机数的使用、在UIImageView 中旋转图像、在Quartz中如何设置旋转点、创建.plist文件并存储
- ios-day10-01(模仿点菜系统。UIPickerView的使用、如何产生随机数等)
- iOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用 - 文顶顶
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- (三十)PickerView文字和随机数的使用
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- iOS开发入门之UIPickerView控件的简单使用
- iOS开发使用Picker View实现一个图片浏览的App
- iOS开发 点菜系统 使用UIPickerView
- iOS开发中使用Picker View实现一个点菜应用的UI示例
- iOS开发 UIPickerView的使用
- iOS开发 自定义tableView样式(使用代码/使用Interface Builder)、分组显示、给TableView增加索引、给TableView增加SearchBar
- IOS 基础开发之 UIScrollView的使用
- IOS开发(3)之UIPickerView控件