6

在此处输入图像描述我的 UIDatePicker 的背景是黑色的(因为整个屏幕的背景可能是黑色的),但我希望这个 UIDatePicker 的背景是白色的。

有没有办法改变背景颜色而不继承它?

4

8 回答 8

5
datePickerName.backgroundColor = [UIColor grayColor];
于 2015-06-23T12:18:16.857 回答
4

iOS 14 更新

它看起来datePicker.backgroundColor在 iOS 14 中不起作用。它起作用了。但是你必须在设置之后把它preferredDatePickerStyle

let picker = UIDatePicker()
if #available(iOS 13.4, *) {
    picker.preferredDatePickerStyle = .wheels
}
picker.backgroundColor = .red
于 2021-09-20T12:36:19.103 回答
3

目标 C

datePicker.backgroundColor = [UIColor greenColor]

迅速

DatePicker.backgroundColor = UIColor.blueColor()
DatePicker.setValue(UIColor.greenColor(), forKeyPath: "textColor")
DatePicker.setValue(0.8, forKeyPath: "alpha")
于 2017-02-27T12:10:22.680 回答
2

iOS 14 更新

iOS 14 后以这种方式设置背景颜色

datePicker.backgroundColor = <# your bg color #> 

不再起作用了。

所以我现在使用键值编码方法:

datePicker.setValue(<# your bg color #> , forKey: "backgroundColor")
于 2021-04-28T00:19:20.767 回答
1

我有同样的问题。我刚刚创建了一个 UIView 并将其放在 UIDatePicker 后面

    datePickerBackground = [[UIView alloc] initWithFrame:myDatePickerView.frame];
    datePickerBackground.backgroundColor = [UIColor whiteColor];
    [self.view insertSubview:datePickerBackground belowSubview:myDatePickerView];

我声明了 UIView *datePickerBackground; 在我的课上。我重用了同一个 ViewController,所以我在卸载时将 datePickerBackground 设置为 nil。

于 2013-12-04T20:22:47.750 回答
1

只需按照以下步骤操作

  • 首先,您. h文件,如:

    UIPickerViewDelegate, UIPickerViewDataSource

  • 然后在您创建日期选择器的位置添加该行

    YourDatePicker = [[UIDatePicker alloc] init];
    YourDatePicker.backgroundColor=[UIColor whiteColor];

  • 在您的情况下,颜色为白色,但您可以根据需要将其更改为白色。

于 2017-02-17T06:36:12.690 回答
0

通常,我会说UIDatePicker 继承自 UIView并且您可以通过类似的行以编程方式设置背景yourDatePickerRef.backgroundColor = [UIColor whiteColor];,但事实证明 -根据这个相关问题- UIDatePicker 内部有许多子视图其中一些是背景视图。

正是这些子视图,您需要将背景颜色设置为白色(而不是清晰或当前设置的任何颜色)。

是的,这有点痛苦,但这使得 UIDatePicker在能够自定义外观方面成为一个潜在的强大对象。

于 2013-03-15T23:32:42.497 回答
0

为什么不在UIView选择器后面添加一个平原。将视图的背景颜色设置为白色。给视图与选取器相同的框架。

注意(根据您对迈克尔回答的评论):

挖掘 a 的私有子视图UIDatePicker是有风险的。它随时可能破裂。几乎可以保证,您的解决方案会因在不使用 AM/PM 的语言环境的设备上使用的日期选择器而中断,因为选择器将只有两个组件而不是三个。

于 2013-03-16T03:08:28.717 回答