我的 UIDatePicker 的背景是黑色的(因为整个屏幕的背景可能是黑色的),但我希望这个 UIDatePicker 的背景是白色的。
有没有办法改变背景颜色而不继承它?
我的 UIDatePicker 的背景是黑色的(因为整个屏幕的背景可能是黑色的),但我希望这个 UIDatePicker 的背景是白色的。
有没有办法改变背景颜色而不继承它?
datePickerName.backgroundColor = [UIColor grayColor];
iOS 14 更新
它看起来datePicker.backgroundColor
在 iOS 14 中不起作用。它起作用了。但是你必须在设置之后把它preferredDatePickerStyle
:
let picker = UIDatePicker()
if #available(iOS 13.4, *) {
picker.preferredDatePickerStyle = .wheels
}
picker.backgroundColor = .red
目标 C
datePicker.backgroundColor = [UIColor greenColor]
迅速
DatePicker.backgroundColor = UIColor.blueColor()
DatePicker.setValue(UIColor.greenColor(), forKeyPath: "textColor")
DatePicker.setValue(0.8, forKeyPath: "alpha")
iOS 14 更新
iOS 14 后以这种方式设置背景颜色
datePicker.backgroundColor = <# your bg color #>
不再起作用了。
所以我现在使用键值编码方法:
datePicker.setValue(<# your bg color #> , forKey: "backgroundColor")
我有同样的问题。我刚刚创建了一个 UIView 并将其放在 UIDatePicker 后面
datePickerBackground = [[UIView alloc] initWithFrame:myDatePickerView.frame];
datePickerBackground.backgroundColor = [UIColor whiteColor];
[self.view insertSubview:datePickerBackground belowSubview:myDatePickerView];
我声明了 UIView *datePickerBackground; 在我的课上。我重用了同一个 ViewController,所以我在卸载时将 datePickerBackground 设置为 nil。
只需按照以下步骤操作
首先,您在. h文件,如:
UIPickerViewDelegate, UIPickerViewDataSource
然后在您创建日期选择器的位置添加该行
YourDatePicker = [[UIDatePicker alloc] init];
YourDatePicker.backgroundColor=[UIColor whiteColor];
在您的情况下,颜色为白色,但您可以根据需要将其更改为白色。
通常,我会说UIDatePicker 继承自 UIView并且您可以通过类似的行以编程方式设置背景yourDatePickerRef.backgroundColor = [UIColor whiteColor];
,但事实证明 -根据这个相关问题- UIDatePicker 内部有许多子视图,其中一些是背景视图。
正是这些子视图,您需要将背景颜色设置为白色(而不是清晰或当前设置的任何颜色)。
是的,这有点痛苦,但这使得 UIDatePicker在能够自定义外观方面成为一个潜在的强大对象。
为什么不在UIView
选择器后面添加一个平原。将视图的背景颜色设置为白色。给视图与选取器相同的框架。
注意(根据您对迈克尔回答的评论):
挖掘 a 的私有子视图UIDatePicker
是有风险的。它随时可能破裂。几乎可以保证,您的解决方案会因在不使用 AM/PM 的语言环境的设备上使用的日期选择器而中断,因为选择器将只有两个组件而不是三个。