我一直在尝试更改背景&uidatePicker的文本颜色,我正在通过ViewDidload执行此代码。文本颜色改变了,但是背景颜色拒绝改变。相反,当我运行该应用程序并首次加载视图时,它不会更改颜色,但是如果我在文本字段内点击,然后转到上一个屏幕,然后单击Textfield,背景颜色会像应该一样更改。这是我的ViewDidload方法的代码:
UIDatePicker *endTimeDatePicker = [[UIDatePicker alloc]init];
endTimeDatePicker.backgroundColor = [UIColor colorWithRed:0/255
green:0/255 blue:0/255 alpha:0.8];
[endTimeDatePicker setValue:[UIColor whiteColor] forKey:@"textColor"];
[endTimeDatePicker setDate:startTime];
endTimeDatePicker.datePickerMode = UIDatePickerModeDate;
[endTimeDatePicker addTarget:self action:@selector(updateEndTime:)
forControlEvents:UIControlEventValueChanged];
[promoEndTime setInputView:endTimeDatePicker];
我真的很茫然,我还尝试了其他变体来设置背景颜色...
挫折颜色,设置tintcolor,uicolor黑色
仍然什么都不是,结果仍然相同,任何帮助都是非常感谢。
通常设置backgroundColor
是所有需要的。如果您添加了接口构建器中的日期选择器,则可以正常工作。我怀疑当您致电setInputView
时,您的promoEndTime
通过将其更改为其他设置来覆盖该设置。
您可能通过在调用setInputView
之后设置背景颜色来解决此问题。但是,您可能会发现更好的改变策略是更好的,因为众所周知,采摘者对UI的变化具有抵抗力。您已经在这里与Apple陷入困境,因为textColor
设置未记录。使用无证件API是让Apple从商店拒绝您的应用程序的主要风险。我同意更好的外观自定义将是非常在这里不错,但是更改文本颜色是从Apple出来的。
如果任何人正在寻找一种在新iOS 14 uidatePicker compact上更改日历弹出式背景颜色的方法,那么这就是对我有用的方法:
(UIVisualEffectView.classForCoder() as? UIAppearanceContainer.Type).map({ UIDatePicker.appearance(whenContainedInInstancesOf: [$0]).backgroundColor = UIColor.yellow })