全网整合营销服务商

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

免费咨询热线: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控件的使用方法  # 随机数  # 方法来  # 的是  # 都是  # 是一个  # 多个  # 如有  # 是由  # 又有  # 只需  # 希望能  # 可以直接  # 为其  # 要得  # 谢谢大家  # 等内容  # 可以得到  # 放着  # 不同类型  # 有三种 


相关文章: C#怎么使用委托和事件 C# delegate与event编程方法  家具网站制作软件,家具厂怎么跑业务?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  javascript基本数据类型及类型检测常用方法小结  Python如何创建带属性的XML节点  内部网站制作流程,如何建立公司内部网站?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  网站企业制作流程,用什么语言做企业网站比较好?  如何通过网站建站时间优化SEO与用户体验?  如何通过云梦建站系统实现SEO快速优化?  如何通过PHP快速构建高效问答网站功能?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Thinkphp 中 distinct 的用法解析  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  香港服务器租用每月最低只需15元?  简单实现Android验证码  如何登录建站主机?访问步骤全解析  如何通过VPS建站实现广告与增值服务盈利?  建站主机系统SEO优化与智能配置核心关键词操作指南  如何选择高效稳定的ISP建站解决方案?  javascript中对象的定义、使用以及对象和原型链操作小结  建站168自助建站系统:快速模板定制与SEO优化指南  建站OpenVZ教程与优化策略:配置指南与性能提升  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何用PHP工具快速搭建高效网站?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  如何快速启动建站代理加盟业务?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  如何选择高性价比服务器搭建个人网站?  如何在云主机上快速搭建多站点网站?  如何在云主机上快速搭建网站?  如何选择美橙互联多站合一建站方案?  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何通过VPS建站无需域名直接访问?  设计网站制作公司有哪些,制作网页教程?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  建站之星代理费用多少?最新价格详情介绍  重庆市网站制作公司,重庆招聘网站哪个好?  如何通过远程VPS快速搭建个人网站?  平台云上自助建站如何快速打造专业网站?  如何选择建站程序?包含哪些必备功能与类型?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何在阿里云ECS服务器部署织梦CMS网站?  如何配置支付宝与微信支付功能?  开封网站制作公司,网络用语开封是什么意思?  建站之星CMS五站合一模板配置与SEO优化指南  C++如何将C风格字符串(char*)转换为std::string?(代码示例) 

您的项目需求

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