IOS开发入门ios 构建含有多个滚轮的表格
白羽 2019-04-16 来源 :网络 阅读 690 评论 0

摘要:本文将带你了解IOS开发入门ios 构建含有多个滚轮的表格,希望本文对大家学IOS有所帮助。

    本文将带你了解IOS开发入门ios 构建含有多个滚轮的表格,希望本文对大家学IOS有所帮助。


IOS开发入门ios 构建含有多个滚轮的表格


有时用户需要从一份很长的列表中选择某个条目,或是需要同时从多份列表中分别做出选择。UIPickerView实例很适合这些情况下。UIPickerVIew对象制作出的表格提供了很多各自独立的滚轮。用户可以通过操作这些滚轮来做出选择
   他们使用的独特的数据源协议和委托协议:
   1、没有UIPickerViewController类。UIPickerView实例扮演其他视图的子视图。在应用程序里,它们并不打算成为视图的中心焦点。开发者可以把UIPickerView实例放在另一个视图里面。
   2、UIPickerView采用数字而非对象来表示其中的滚轮。UIPickerView里的组件是用数字来编号的,而不与NSIndexPath实力相对应。这个类不像UITableVIew那样严整。
   在实现数据源协议时,开发者可以提供字符串,也可以提供视图。这两种方式UIPickerView都能处理。
   1、创建UIPickerView
   创建选取器的时候,别忘了设置delegate与dataSource。如果不这样做,那么就无法向视图里添加数据、无法定义其特性,也无法响应用户所做的选择。主视图控制器应该实现UIPickerViewDelegate与UIPickerViewDataSource协议
   2、数据源方法与委托方法
   为了使UIPickerView具备最基本的功能,需要实现三个关键的数据源方法:
   1、numberOfComponentsInPickerView:——该方法返回视图里的列数,其返回值是个整数。
   2、pickerVIew:numberOfRowsInComponent:——该方法返回每个滚轮所具备的行数,其返回值是个整数。滚轮的行数不一定都要相同。其中一个滚轮可以有很多行,而另外一个滚轮则可以只有几行。
   3、pickerVIew:titleForRow:forComponent:或pickerView:viewForRow:forComponent:reusingView:——这两个方法可以为滚轮中的某一行指定文本或视图,以便用作该行的标签。
   3、主要代码
   -  (void)viewDidLoad {    [super  viewDidLoad];    // Do any additional setup after loading  the view, typically from a nib.    self.view.backgroundColor  = [UIColor whiteColor];    UIPickerView *picker =  [[UIPickerView alloc] initWithFrame:CGRectMake(0, 100,  self.view.frame.size.width, 200)];    [self.view  addSubview:picker];    picker.delegate =  self;    picker.dataSource =  self;    picker.showsSelectionIndicator =  YES;         [picker  selectRow:5000 + (rand() % 4) inComponent:0 animated:YES];    [picker  selectRow:5000 + (rand() % 4) inComponent:1  animated:YES];    [picker selectRow:5000 + (rand() % 4)  inComponent:2 animated:YES];} -  (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{    return  3;} - (NSInteger)pickerView:(UIPickerView *)pickerView  numberOfRowsInComponent:(NSInteger)component{    return  1000000;} - (CGFloat)pickerView:(UIPickerView *)pickerView  rowHeightForComponent:(NSInteger)component{    return  120;} - (UIView *)pickerView:(UIPickerView *)pickerView  viewForRow:(NSInteger)row forComponent:(NSInteger)component  reusingView:(UIView *)view{    NSArray *names =  @[@"club",@"diamond",@"heart",@"spade"];    UILabel  *label = (UILabel *)view;    label.text =  names[row%4];    if (!label)  {        label = [[UILabel alloc]  init];        label.text =  names[row%4];    }    return  label;} - (void)pickerView:(UIPickerView *)pickerView  didSelectRow:(NSInteger)row inComponent:(NSInteger)component{    NSArray  *names =  @[@"C",@"D",@"H",@"S"];    self.title  = [NSString stringWithFormat:@"%@ %@ %@",names[[pickerView  selectedRowInComponent:0] % 4],names[[pickerView selectedRowInComponent:1] %  4],names[[pickerView selectedRowInComponent:2] % 4]];}
   在这里将每个滚轮的总行数定为一百万,之所以这么大就是为了模拟出真实的圆柱形滚轮。一般来说,UIPickerView里面的滚轮都有其实元素和终止元素,滚轮到了最后一个元素之后,就不能再继续滚动了。于是,我们会想:如果程序里的滚轮和真实的圆柱形滚轮一样,那么在到达了最后一项之后,接下来应该又出现第一项才对。为了模拟这种效果,就将行数设成了一个非常大的值,使得用户不太可能滚动到末端。
        

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程