web-dev-qa-db-ja.com

SDK 7を使用してiOS 7でUIPickerViewの背景色を設定する方法

UIPickerViewの背景色を設定する方法iOS 7の場合 SDK 7を使用し、標準ピッカーを使用するiOS 5および6の場合? iOS 7では、デフォルトで透過的です。

16
Dmitry

UIViewの下にUIPickerViewをコードで追加しました:

CGRect framePickerView = CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 216);
pickerView = [[[UIView alloc] initWithFrame:framePickerView] autorelease];
pickerView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:pickerView];
[pickerView addSubview:picker];

代わりにコード:

[self.view addSubview:picker];
8
Dmitry

どうしたの:

[picker setBackgroundColor:[UIColor whiteColor]];

あなたがそれを呼び出しているならあなたがピッカービューへの参照を持っていると思います、そしてそれはUIViewのサブクラスなので、backgroundColorは有効なプロパティです...

40
Jesse

コメントとして書きたかったのですが、読みづらいでしょう:).

-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 44)]; // your frame, so picker gets "colored"
    label.backgroundColor = [UIColor lightGrayColor];
    label.textColor = [UIColor blackColor];
    label.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:18];
    label.text = [NSString stringWithFormat:@"%d",row];

    return label;
}

また、ラベルのみである必要はありません。他のサブビューも挿入できると思います...私が知る限り、iOS7で機能します pic here

9
Yanchi

これは私にとってiOS 7.1で機能しました:

[[UIPickerView appearance] setBackgroundColor:[UIColor whiteColor];

これにより、すべてのピッカーの色が変更されます。これをiOS 7搭載のデバイスでのみ実行したい場合は、条件付きで配置できます。

9
arlomedia

UIPickerView.backgorundColorですが、背景色が変でした。

削除次の行で問題が修正されました:

UITextField.keyboardAppearance = .dark

または、次のようにkeyboardAppearanceをデフォルトにリセットします。

UITextField.keyboardAppearance = .default
4
AamirR

Swiftで作業し、複数のピッカーを使用している可能性のあるユーザー向け:

pickerView1.backgroundColor = UIColor.darkGrayColor()
pickerView2.backgroundColor = UIColor.greenColor()

Xcode 7.3

3
Diesel