全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

IOS 开发之PickerView文字和随机数的使用

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  # PickerView  # PickerView使用方法  # PickerView随机数  # IOS 开发之PickerView自定义视图的实例详解  # iOS中自定义弹出pickerView效果(DEMO)  # iOS开发之UIPickerView实现城市选择器的步骤详解  # 详解iOS App中UIPickerView滚动选择栏的添加方法  # iOS App中UIPickerView选择栏控件的使用实例解析  # 实例讲解iOS应用开发中UIPickerView滚动选择栏的用法  # 详解iOS开发中UIPickerView控件的使用方法  # 随机数  # 方法来  # 的是  # 都是  # 是一个  # 多个  # 如有  # 是由  # 又有  # 只需  # 希望能  # 可以直接  # 为其  # 要得  # 谢谢大家  # 等内容  # 可以得到  # 放着  # 不同类型  # 有三种 


相关文章: Python如何创建带属性的XML节点  h5网站制作工具有哪些,h5页面制作工具有哪些?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  重庆市网站制作公司,重庆招聘网站哪个好?  如何通过多用户协作模板快速搭建高效企业网站?  招商网站制作流程,网站招商广告语?  建站之星代理如何优化在线客服效率?  如何在七牛云存储上搭建网站并设置自定义域名?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  广平建站公司哪家专业可靠?如何选择?  如何规划企业建站流程的关键步骤?  建站之星安装后如何配置SEO及设计样式?  建站之星与建站宝盒如何选择最佳方案?  c# 服务器GC和工作站GC的区别和设置  音乐网站服务器如何优化API响应速度?  如何在云主机快速搭建网站站点?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  制作销售网站教学视频,销售网站有哪些?  如何在Windows环境下新建FTP站点并设置权限?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  南京网站制作费用,南京远驱官方网站?  建站之星客服服务时间及联系方式如何?  微信推文制作网站有哪些,怎么做微信推文,急?  如何制作算命网站,怎么注册算命网站?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  宁波自助建站系统如何快速打造专业企业网站?  定制建站方案优化指南:企业官网开发与建站费用解析  网站制作模板下载什么软件,ppt模板免费下载网站?  做企业网站制作流程,企业网站制作基本流程有哪些?  建站168自助建站系统:快速模板定制与SEO优化指南  如何选择CMS系统实现快速建站与SEO优化?  如何快速搭建高效WAP手机网站吸引移动用户?  Android自定义listview布局实现上拉加载下拉刷新功能  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  如何在景安服务器上快速搭建个人网站?  python的本地网站制作,如何创建本地站点?  相册网站制作软件,图片上的网址怎么复制?  如何选择高效响应式自助建站源码系统?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Python文件管理规范_工程实践说明【指导】  高端云建站费用究竟需要多少预算?  如何制作网站标识牌,动态网站如何制作(教程)?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  湖北网站制作公司有哪些,湖北清能集团官网?  高端建站如何打造兼具美学与转化的品牌官网?  创业网站制作流程,创业网站可靠吗?  如何挑选最适合建站的高性能VPS主机?  网站制作说明怎么写,简述网页设计的流程并说明原因?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。