我在单个视图上有选择器控件,每个视图有两个出口。当选择它们中的任何一个时,调用相同的方法。我应该如何区分哪个选择器控件调用了委托?
如何更改拾取器的框架大小以适合一个视图?
谢谢,
阿米特
答案 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)
您可以将其作为一个选择器而不是两个选择器。 您可以在视图中使用选择器控制器。用户触摸按钮后,抬起视图并使其从拾取器中选择并移除视图。这将减少主视图控制器中的空间。