の背景色を変えたいのですがUIPickerView
、可能ですか?
4 に答える
更新: 1 つの簡単なトリックは、いくつかのサブビューにアルファを設定することです。具体的には、コンポーネントの数によって異なりますが、コードは次のとおりです。
[(UIView*)[[picker subviews] objectAtIndex:2] setAlpha:0.5f];
これにより、文字盤が半透明になり、背景色が透けて見えます。
backgroundColor を設定しても、何もしないようです。これまでのところ、コンポーネントの基本色が白のままであるため、個々のコンポーネント行の背景色を設定するのが最善です。
理想的には、各コンポーネント (ダイヤルなど) の背景色を設定したいと思います。
最終的にそれを行うことができました。1 つのコンポーネントを持つピッカー ビューで試してみます。
次のように、ウィザードまたはコードで、ピッカー ビューの背景色をクリア カラーに設定します。
Picker1.backgroundColor = [UIColor clearColor];
番号0、1、および3のピッカービューサブビューのアルファ値を0.0fに設定します(サブビュー2が考えられる理由はわかりません)。次のように、ピッカー ビューの最初のデータをロードした後にコードで実行します (DidViewLoad でこれを実行すると、例外がスローされます)。
[(UIView*)[[Picker1 subviews] objectAtIndex:0] setAlpha:0.0f]; [(UIView*)[[Picker1 subviews] objectAtIndex:1] setAlpha:0.0f]; [(UIView*)[[Picker1 subviews] objectAtIndex:3] setAlpha:0.0f];
viewForRow メソッドでピッカー ビューに送信するラベルの背景色をクリアすることを忘れないでください。
lbl.backgroundColor = [UIColor clearColor];
iOS 4.2にはサブビューがないようです...
NSLog(@" %@ ", [self.pickerView subviews]);
空の配列を返します。
iOS 7 では、その背後にカスタム背景画像をドロップするだけです。他に何も変更する必要はありませんでした。