iPhone:多个 UIPickerViews
Posted
技术标签:
【中文标题】iPhone:多个 UIPickerViews【英文标题】:iPhone: Multiple UIPickerViews 【发布时间】:2011-04-30 09:03:12 【问题描述】:我在 iPhone 应用程序中使用多个 UIPickerView
。我的问题是,如何处理多个UIPickerView
Handle Events?
另外,我想将所选值放在不同UIPickerViews
的UITextField
中。
【问题讨论】:
【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章