UIPickerView
の背景色を設定する方法iOS 7の場合 SDK 7を使用し、標準ピッカーを使用するiOS 5および6の場合? iOS 7では、デフォルトで透過的です。
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];
どうしたの:
[picker setBackgroundColor:[UIColor whiteColor]];
あなたがそれを呼び出しているならあなたがピッカービューへの参照を持っていると思います、そしてそれはUIViewのサブクラスなので、backgroundColor
は有効なプロパティです...
コメントとして書きたかったのですが、読みづらいでしょう:).
-(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で機能します
これは私にとってiOS 7.1で機能しました:
[[UIPickerView appearance] setBackgroundColor:[UIColor whiteColor];
これにより、すべてのピッカーの色が変更されます。これをiOS 7搭載のデバイスでのみ実行したい場合は、条件付きで配置できます。
UIPickerView.backgorundColor
ですが、背景色が変でした。
削除次の行で問題が修正されました:
UITextField.keyboardAppearance = .dark
または、次のようにkeyboardAppearance
をデフォルトにリセットします。
UITextField.keyboardAppearance = .default
Swiftで作業し、複数のピッカーを使用している可能性のあるユーザー向け:
pickerView1.backgroundColor = UIColor.darkGrayColor()
pickerView2.backgroundColor = UIColor.greenColor()
Xcode 7.3