首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Picker,访问dataSource?

Picker,访问dataSource?
EN

Stack Overflow用户
提问于 2010-02-13 02:47:00
回答 1查看 110关注 0票数 0

我正在学习如何设置一个多选取器,我对下面两个标记的部分有点好奇:

代码语言:javascript
复制
 // METHOD_001
 NSInteger row_001 = [doublePicker selectedRowInComponent:0];
 NSInteger row_002 = [doublePicker selectedRowInComponent:1];
 NSString *selected_001 = [pickerData_001 objectAtIndex:row_001];
 NSString *selected_002 = [pickerData_002 objectAtIndex:row_002];

EDIT_001:

也许我可以简化一点...我知道METHOD_001在做什么,但是下面的方法呢?如果我注释掉它,我的代码仍然会运行,但是选择器UI不会填充我的数据,所以它显然涉及到从dataSource中获取数据,以便选择器可以显示数据。一个令人费解的方面是,它使用"objectAtIndex: row“来访问一个项目,即使整个UI需要填充(即所有行),这是否意味着这将为每一行调用,似乎很有趣,它不需要一个NSArray并一次性填充选取器UI?

代码语言:javascript
复制
// DELEGATE
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    if(component == kCoffeeIndex) return [pickerData_001 objectAtIndex:row];
    return [pickerData_002 objectAtIndex:row];
}

加里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-13 05:43:13

每当UI认为需要数据时,都会调用委托方法-pickerView:titleForRow:forComponent:

它不需要数组,因为标题可能是动态生成的,也可能是延迟检索的。实际上,表视图也是如此。通常只加载可见的行,以减少所需的数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2254274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档