iPhone:多个 UIPickerViews

Posted

技术标签:

【中文标题】iPhone:多个 UIPickerViews【英文标题】:iPhone: Multiple UIPickerViews 【发布时间】:2011-04-30 09:03:12 【问题描述】:

我在 iPhone 应用程序中使用多个 UIPickerView。我的问题是,如何处理多个UIPickerView Handle Events?

另外,我想将所选值放在不同UIPickerViewsUITextField 中。

【问题讨论】:

【参考方案1】:

在每个委托中,您都引用了触发委托的UIPickerView。例如:

-(void)numberOfComponentInPickerView:(UIPickerView*)thePickerView

您有 thePickerView 变量指向响应此操作的控件,您现在需要做的就是区分您的UIPickerViews,如下所示:

 if (thePickerView == firstPickerView)

或者使用 Tag 属性

 if (thePickerView.tag == 1)

我会选择标签解决方案;比较int 更快。

如何获得选中的值:

至于UIPickerView 的选定值,您可以使用委托来做到这一点:

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

您需要在这里使用相同的技术;区分您的 UIPickerView 并获取该数据源的选定行,然后您就完成了

 MyTextField.text = [theSelectedListArray objectAtIndex:row];

【讨论】:

【参考方案2】:
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
    NSInteger counter;
    if(pickerView==p1)
    
        counter=[name count];
    
    else
    
        counter=[name2 count];
    
    return counter;


- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
    if(pickerView==p1)
        return [name objectAtIndex:row];//name is NsMutable Array
    else
        return [name2 objectAtIndex:row];//name2 is NsMutable Array


【讨论】:

以上是关于iPhone:多个 UIPickerViews的主要内容,如果未能解决你的问题,请参考以下文章

无法在多个 iPhone 上测试

适用于不同 iPhone 尺寸的多个故事板

iphone - 单个 UIImage 多个 UIImageView?

iPhone:处理多个操作表

Iphone mapview 中未显示多个注释

如何使用超声波测量两个或多个 iPhone 设备之间的距离