5

我想首先说我会在 Apple Dev Forums 上发布这个问题,但是由于黑客尝试惨败,或者其他原因,论坛已经离线近 2 周了,我需要尽快解决这个问题可能的。

在 iOS 7 中,UIDatePicker 看起来像这样: 在此处输入图像描述

一位客户要求看起来像这样: 在此处输入图像描述

(基本上是倒置的)。

我尝试了几件事:

  1. 将背景设置为黑色并循环浏览所有视图的子视图,直到我到达显示日期本身并将其颜色更改为白色的标签。问题是视图只有一个子视图,并且该子视图没有它自己的任何子视图。所以这个解决方案不起作用。(它在 ios6 中做到了)。

  2. 对视图的 CALayer应用过滤器。问题是这只能在 OS X 上而不是在 iOS 上,出于某种未知的原因。

  3. 使用UIApperance协议。从我读过的内容来看,这应该可行,但我尝试过的却没有,而且我没有丰富的经验来弄清楚为什么不这样做。

有什么想法我可以尝试吗?这甚至可能吗?我在解决问题的方法上犯了错误吗?

4

8 回答 8

6

试试这个:

将此代码放入-(void)viewDidLoad

[datePicker setValue:[UIColor whiteColor] forKey:@"textColor"];

迅速:

datePicker.setValue(UIColor.white, forKey: "textColor")
于 2015-09-17T10:44:32.140 回答
3

不知道这是否仍然相关,但在 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
于 2017-04-11T21:55:54.933 回答
2

我花了很多时间来解决同样的问题。起初,我将 UIDatePicker 放在黑色背景上,想知道为什么它是不可见的......

我最终放置了一个白色 UIView 作为日期选择器的背景,所以虽然整个视图是黑色的,但日期选择器是白色的。它实际上看起来还不错,虽然谢天谢地我没有一个会决定设计的客户。

客户端的一个可能参数:旧的,iOS7 之前的日期选择器,也有一个预定义的不可自定义的背景。

于 2013-09-22T16:10:53.373 回答
1

好吧,我理解你的沮丧,但 iOS7 处于保密协议之下。
通常这种视图是使用图层制作的,因为 sublayerTransform 可以制作透视图,从而产生 3D 的想法。如果您没有看到子视图,我会检查子图层。
另一点是我不会破解太多的视图/层层次结构,从 ios<=6 到 ios7 的过渡表明破解不是一个好主意。
UIAppereance 协议可能是要走的路,因为它会让你改变你可以改变的东西(以后不用搞砸了),也许你可以设置一个 backgroundImage,尝试设置一个 1x1pixel 的 blck color png,你还应该看到一个属性字符串属性或文本属性。

于 2013-07-28T09:31:18.717 回答
1

您想要什么是可能的,但它将被称为自定义日期选择器。

以下是您可以找到所需内容的链接。

https://www.cocoacontrols.com/controls/simpledatepicker

如果您需要更多,请在以下链接中获取战利品。

https://www.cocoacontrols.com/search?utf8=%E2%9C%93&q=datepicker

于 2014-02-01T12:48:55.043 回答
0

根据 iOS 设计资源:

您无法自定义日期选择器的外观。

我会建议以下之一:

  • 重新设计您的 UI 以使用黑色文本
  • 使用客户日期选择器
于 2013-09-15T13:12:29.143 回答
0

我认为通过更改默认 UIDatePicker 的属性直接执行此操作是不可能的,尽管您可以使用自定义控件来执行此操作。这可能会有所帮助,

MWDatePicker - https://github.com/mwermuth/MWDatePicker(在可可控件中找到它 - https://www.cocoacontrols.com/controls/mwdatepicker

于 2013-08-30T06:46:05.757 回答
0

您应该告诉您的客户,他的建议违反了 iOS 7 的设计原则,事实确实如此。我自己不是 iOS 7 的忠实粉丝,但我们都应该试一试。您的客户应该暂时接受标准的 iOS 7 UI,直到他能够做出明智的判断。根据他的最初印象设计应用程序是灾难的根源。

于 2013-09-15T13:25:55.583 回答