我想首先说我会在Apple Dev论坛上发布这个问题,但由于黑客攻击尝试惨败,或者其他什么,论坛已经离线了将近2周,我需要一个解决方案可能。
在iOS 7中,UIDatePicker看起来像这样:
并且客户要求看起来像这样:
(基本上是倒置的)。
我尝试过几件事:
我有什么想法可以尝试吗?这甚至可能吗?我在处理问题时犯了错误吗?
你想要什么是可能的,但它将被称为自定义日期选择器。
以下是您可以找到所需内容的链接。
https://www.cocoacontrols.com/controls/simpledatepicker
如果您需要更多,请查看以下链接。
https://www.cocoacontrols.com/search?utf8=%E2%9C%93&q=datepicker
试试这个:
将此代码放入 - (void)viewDidLoad
[datePicker setValue:[UIColor whiteColor] forKey:@"textColor"];
迅速:
datePicker.setValue(UIColor.white, forKey: "textColor")
不知道这是否仍然相关,但在Swift 3 / Xcode 8上你可以简单地这样做:
let datePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.date
// Sets the text color
datePicker.setValue(UIColor.white, forKey: "textColor")
// Sets the bg color
datePicker.backgroundColor = UIColor.black.withAlphaComponent(0.6)
textField.inputView = datePicker
我花了相当多的时间来解决同样的问题。起初,我把UIDatePicker放在黑色背景上,并想知道为什么它是隐形的......
我最终放置了一个白色的UIView作为日期选择器的背景,所以当整个视图是黑色时,日期选择器是白色的。它实际上看起来还不错,但幸运的是我没有一个客户会决定设计。
客户端的一个可能的论点:旧的iOS7之前的日期选择器,也有一个预定义的非自定义背景。
我理解你的挫败感,但iOS7是在NDA下。 通常这种视图是使用图层制作的,因为sublayerTransform可以使透视给出3D的想法。如果你没有看到子视图我会检查子层。 另一个要点是我不会破解太多的视图/层层次,ios <= 6到ios7过渡表明黑客攻击并不是一个好主意。 UIAppereance协议可能是要走的路,因为它会让你改变你可以改变的东西(不用将来搞砸),也许你可以设置一个backgroundImage,试着设置一个1x1pixel的blck颜色png,你也应该看到一个属性字符串属性或文本属性。
我不认为通过更改默认UIDatePicker的属性可以直接执行此操作,尽管您可以使用自定义控件来执行此操作。这可能有所帮助,
MWDatePicker - https://github.com/mwermuth/MWDatePicker(在可可控件中找到它-https://www.cocoacontrols.com/controls/mwdatepicker)
根据iOS设计资源:
您无法自定义日期选择器的外观。
我会建议以下之一:
你应该告诉你的客户他的建议是违反iOS 7的设计原则的,确实是这样。我自己并不是iOS 7的忠实粉丝,但我们都应该试一试。您的客户应该暂时接受标准的iOS 7 UI,直到他能够做出明智的判断。根据他最初的印象来设计应用程序是一种灾难。