2009-08-25 9 views
1

私はピッカーコントロールを1つのビューにそれぞれ2つのアウトレットがあります。いずれかが選択されると、同じメソッドが呼び出されます。どのピッカーコントロールがデリゲートを呼び出したかをどのように区別する必要がありますか?1つのUIViewに2つのピッカーコントロールを置く

ピッカーのフレームサイズを1つのビューに収めるにはどうすればよいですか?ビュー内の

おかげで、

アミット

答えて

0

UILableにビューを設定し、フォントサイズやadjustsFontSizeToFitWidth設定:私は右互いの上に2つのピッカーを入れ、その後であるかを選択するUISegmentedControlを使用して大きな成功を収めてきた

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

二ピッカーは醜いクレイジーに聞こえます。 2つのコンポーネント(つまり列)を持つピッカーを持つことは実際には効果がありませんか?

しかし、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つのビューに2つのピッカーで、「クリーン」はおそらくとにかくあなたのためのオプションがありません。

+0

問題は、両方のプリッカーに表示されるデータが調整する必要があるためです。だから私たちは、テキストを "..."で切り捨てると、ピッカー内のテキストのフォントサイズを減らすことはできないと思いますか? – AmJa

0

をそれぞれの.hiddenプロパティを設定することによって、表示されます。

0

2つのピッカーを使用する代わりに、1つのピッカーとすることができます。 ピッカー・コントローラーをビュー内に置くことができます。ユーザーがボタンをタッチするとビューが上がり、ピッカーから選択してビューを削除します。これによりメインビューコントローラーのスペースが減少します。

関連する問題