在单个UIView上设置两个选择器控件

时间:2009-08-25 12:55:07

标签: iphone

我在单个视图上有选择器控件,每个视图有两个出口。当选择它们中的任何一个时,调用相同的方法。我应该如何区分哪个选择器控件调用了委托?

如何更改拾取器的框架大小以适合一个视图?

谢谢,

阿米特

4 个答案:

答案 0 :(得分:0)

视图中的两个采摘者听起来很疯狂。你是否真的不适合拥有两个组件(即列)的选择器?

然而,UIPickerViewDelegate定义的每个方法中的第一个参数是调用你的选择器。如果您已将IBOutlet连接到每个UIPickerView,那么您应该能够将此参数与这些出口进行比较,以确定哪个出口呼叫您。像这样:

IBOutlet UIPickerView *fooPicker;
IBOutlet UIPickerView *barPicker;

// ...

- (NSString *)pickerView:(UIPickerView *)pickerView
    titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    if (pickerView == fooPicker)
         return [NSString stringWithFormat @"Foo row %d", row];
    else 
         return [NSString stringWithFormat @"Bar row %d", row];
}

作为代表连接到不同的对象可能更干净,但在一个视图中有两个选择器,“干净”可能不适合你。

答案 1 :(得分:0)

将视图设置为UILabel并设置字体大小或adjustsFontSizeToFitWidth:

UILabel *myView;
myView = [[[UILabel alloc] initWithFrame:myFrameRect] autorelease];
myView.adjustsFontSizeToFitWidth = YES;
return myView;

答案 2 :(得分:0)

我已经取得了很大的成功,将两个拾音器放在彼此的顶部,然后使用UISegmentedControl通过设置每个拾取器的.hidden属性来选择哪个是可见的。

答案 3 :(得分:0)

您可以将其作为一个选择器而不是两个选择器。 您可以在视图中使用选择器控制器。用户触摸按钮后,抬起视图并使其从拾取器中选择并移除视图。这将减少主视图控制器中的空间。