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

  

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

  

PickerView用于展示供选择的内容(例如日期选取,点菜等)。
  

  

有三种情况:
  

  

1。每一列都是独立的选取
  2.右边的列受到左边列的影响
  3 .包含图片

  

PickerView和表视图类似,通过数据源来显示数据,与TableView同样地,让控制器称为其数据源。
  

  

但是PickerView的数据源仅仅提供行数和列数,在代理方法内才能设置内容。
  

  

通过两个数据源方法设置行和列数,通过一个代理方法来设定内容,注意组件表示第几列:
  

  

这里的食物成员是一个复合数组,即NSArray内又有多个NSArray,每个内层的NSArray中放着一个类型的食物,不同内层NSArray之间代表不同类型的食物。
  

  

要得到这样的复合数组,可以直接建立,例如:
  

        (@ @ @ […],[…],@ […]];   之前      

或者通过plist读取

        # pragma马克- PickerView数据源方法//返回的列显示的数量。   ——(NSInteger) numberOfComponentsInPickerView:(UIPickerView *) pickerView {   返回self.foods.count;   }//返回的行#每个组件。   ——(NSInteger) pickerView:(UIPickerView *) pickerView numberOfRowsInComponent:组件(NSInteger) {   NSArray * foodArray=self.foods(组件);//组件是列   返回foodArray.count;   }      # pragma马克- PickerView代理方法      ——(NSString *) pickerView:(UIPickerView *) pickerView titleForRow: (NSInteger)行forComponent:组件(NSInteger) {   返回self.foods(组件)(行);   }   之前      

要监听选择,只需要再实现一个代理方法:
  

        - (void) pickerView: (UIPickerView *) pickerView didSelectRow: (NSInteger)行inComponent:组件(NSInteger) {   NSString *名称=self.foods(组件)(行);   开关(组件){   例0:   self.fruitLabel.text=名称;   打破;   案例1:   self.mainLabel。文本=名称;   打破;   案例2:   self.drinkLabel。文本=名称;   打破;   默认值:   打破;   }   }   之前      

一个细节:没有点选时的显示数据初始化:
  

  

间接利用上面的选择方法来初始化数据:每列都选中第0行,由于用不到pickerView本身,因此传入零也无妨。
  

        for (int i=0;我& lt;self.foods.count;我+ +){   【自我pickerView: nil didSelectRow: 0 inComponent:我);   }   之前      

提示:键盘上方常常用导航工具条,用于切换上一项,下一项等内容。

  

直接获取当前的选取项:selectRowInComponent:传入列号可以得到选中的是第几行。

  

<强>随机数:
  

  

arc4random()可以产生0或者正整数,要产生0 ~ (x - 1)的随机数,应该使用arc4random () % x。

  

关于选择层次的设计(选择左边右边变化),是由代码实现的(更换列的数据)。
  

  

需要用到reloadAllComponents或者reloadComponent:方法。

  

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

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