全网整合营销服务商

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

免费咨询热线: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++用Dijkstra(迪杰斯特拉)算法求最短路径  如何自定义建站之星模板颜色并下载新样式?  建设网站制作价格,怎样建立自己的公司网站?  如何用好域名打造高点击率的自主建站?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何高效完成自助建站业务培训?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  制作网站公司那家好,网络公司是做什么的?  外贸公司网站制作哪家好,maersk船公司官网?  TestNG的testng.xml配置文件怎么写  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  建站之星在线版空间:自助建站+智能模板一键生成方案  如何快速搭建二级域名独立网站?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何通过.red域名打造高辨识度品牌网站?  如何在云指建站中生成FTP站点?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何零基础在云服务器搭建WordPress站点?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  如何获取上海专业网站定制建站电话?  如何用狗爹虚拟主机快速搭建网站?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  C++中引用和指针有什么区别?(代码说明)  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何配置支付宝与微信支付功能?  网站制作公司排行榜,四大门户网站排名?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  如何选购建站域名与空间?自助平台全解析  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何在阿里云购买域名并搭建网站?  如何在腾讯云免费申请建站?  如何快速使用云服务器搭建个人网站?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  ,石家庄四十八中学官网?  中山网站推广排名,中山信息港登录入口?  如何快速搭建高效简练网站?  建站主机与服务器功能差异如何区分?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  如何用y主机助手快速搭建网站?  建站上传速度慢?如何优化加速网站加载效率?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何访问已购建站主机并解决登录问题? 

您的项目需求

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