【问题标题】:How can I get the row number of each components in UIPickerView如何获取 UIPickerView 中每个组件的行号
【发布时间】:2014-04-14 23:12:12
【问题描述】:

如何获取UIPickerView中每个组件的行号?

我有UIPickerView Whit 3 个组件:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

第二个问题是如何改变每个组件的宽度?

【问题讨论】:

  • 你的意思是,每个组件有多少行?
  • 我想你通常是通过你的数据源来决定的,不是吗?
  • 不,我的意思是在每个组件中选择了哪一行?

标签: iphone objective-c uipickerview


【解决方案1】:

您可能正在从数组中填充 UIPickerView;在调用中使用 row 参数

[dataArray objectAtIndex:row];

获取数据。如果您需要知道总行数,只需使用[dataArray count]; 即可获取数据源的大小。

编辑:我忘记了,如果您遵循协议,您将实现此方法:

-(NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {

    NSInteger numRows = 0;
    switch (component) {
    case 0:
        numRows = 6;
        break;
    case 1:
        numRows = 3;
        break;
    case 2:
        numRows = 2;
        break;
    default:
        break;
    }
    return numRows;
}

所以,您实际上是在告诉系统每个组件有多少行。检查这一点,或者继续实施它,你就会得到答案!

编辑 2:如果您想在每个组件中获取当前选定的行,请使用:

[yourPickerView selectedRowInComponent:1];

根据需要多次。我建议遍历所有组件并使用此方法获取选定的行。

【讨论】:

  • 如果我使用它,我在所有组件中都有所有 UIPickerView 行
  • 记住我想要每个组件中的行数而不是全部
  • 我实际上想在 uidatepicker 中创建一个类似 uidatepicker "" 的 uipickeview,当您选择组件的行时,uidatepicker 返回每个组件中要提交的行数
  • 好的,再编辑一次,这应该就是您要查找的内容。顺便说一下,UIPickerView 文档包含所有这些信息。
  • 我有警告:'pickerView' 的本地声明隐藏了正在使用的实例变量 [pickerView selectedRowInComponent:1]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多