Iphone 如何使用SDK 7在iOS 7上设置UIPickerView的背景色?

Iphone 如何使用SDK 7在iOS 7上设置UIPickerView的背景色?,iphone,ios,ios7,uipickerview,Iphone,Ios,Ios7,Uipickerview,如何在iOS 7上使用SDK 7设置UIPickerView的背景色,以及在iOS 5和6上使用标准选择器?在iOS 7上,它默认是透明的。我想把它写成评论,但很难阅读:)所以 此外,它不必是唯一的标签,我想你也可以在那里插入其他子视图。。。 据我所知,它在iOS7上工作我在UIPickerView下添加了UIView,代码如下: CGRect framePickerView = CGRectMake(0, self.view.frame.size.height, self.view.frame

如何在iOS 7上使用SDK 7设置
UIPickerView
的背景色,以及在iOS 5和6上使用标准选择器?在iOS 7上,它默认是透明的。

我想把它写成评论,但很难阅读:)所以

此外,它不必是唯一的标签,我想你也可以在那里插入其他子视图。。。
据我所知,它在iOS7上工作

我在
UIPickerView
下添加了
UIView
,代码如下:

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]];

如果调用picker视图,我假设您有一个对它的引用,并且它是UIView的一个子类,因此
backgroundColor
是一个有效的属性…

在iOS 7.1中,这对我很有效:

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

这将更改所有选择器的颜色。如果您只想在配备iOS 7的设备上运行,则可以在其周围添加一个条件。

对于使用swift并可能使用多个选择器的任何人:

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

Xcode 7.3

虽然我设置了
UIPickerView.backgorundColor
,但我有奇怪的背景色

删除以下行修复了该问题:

UITextField.keyboardAppearance = .dark
或者只需将键盘外观重置为默认值,如下所示:

UITextField.keyboardAppearance = .default

我将使用-(UIView*)pickerView:(UIPickerView*)pickerView视图FORROW:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView*)视图和带有背景色的自定义视图,但它适用于所有版本的iOS。我只需要iOS 7(更正了这个问题)。我已经尝试了提供的代码,但它不起作用。我还不知道为什么<代码>picker.delegate=self已使用。它在哪里失败?它是否只显示透明选择器?另外,您是否在.h文件中包含UIPickerViewDeleteGate和UIPickerViewDataSource?嗯,您是否从代码中删除了pickerView:titleForRow:forComponent?它必须是titleForRow或viewForRow。别忘了实现你的其他委托方法(numberOfComponents和numberOfRowInComponent)。我正试图在
UIPickerView
下添加
UIView
,因为我需要在iOS 5和6上使用标准的
UIPickerView
。嗯,也许你可以在这里找到一些灵感,只是找到你客户的OS版本,并将你的代码拆分为支持旧版本有时候可能会很简单这在iOS 7中不适用于我。选取器的背景继续从其后面的视图继承/混合颜色。嗯,刚刚启动了一个新项目,除了一个带有选取器的UIViewController外,没有任何其他内容。将视图和选择器的背景色设置为黑色,然后在viewDidLoad中将pickerview设置为白色,效果如预期。尝试的事情:1。将颜色设置为红色而不是白色,这样更容易验证它是否实际设置了颜色。2.在设置颜色的地方设置一个断点,确保正在调用它。3.确保没有在其他任何地方设置它。我使用picker.backgroundColor=[UIColor-whiteColor];但是是的,同样的事情,这是真的。直截了当:)我从没想过设置键盘外观会导致我的pickerView背景色不起作用。非常感谢。这为我解决了问题。我将UITextField子类化,并在该子类中设置键盘外观。这对于使用普通键盘的文本字段很有效。但这确实会弄乱使用UIPicker作为输入的文本字段,使得UIPicker的背景无法设置。仅供参考:有趣的是,文本字段使用UIDatePicker,UIDatePicker的背景色是可设置的。
UITextField.keyboardAppearance = .default