在iOS10中更改UIDatePicker TextColor

时间:2016-09-17 23:59:21

标签: ios swift

我有一种方法可以在10之前的iOS版本上更改UIDatePicker的文本颜色,但是对于iOS10,这些解决方案似乎不再起作用。如何恢复更改textColor的{​​{1}}?

的功能
UIDatePicker

3 个答案:

答案 0 :(得分:5)

似乎没有任何改变,因为我甚至可以使用Swift 3实现它,如下所示。

import UIKit

class ViewController: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()

        let temp: UIDatePicker = UIDatePicker(frame: self.view.frame)
        temp.setValue(UIColor.purple, forKey: "textColor")

        view.addSubview(temp)
    }

    override func didReceiveMemoryWarning()
    {
        super.didReceiveMemoryWarning()
    }
}

答案 1 :(得分:1)

您正在使用的代码是设置UIDatePicker的私有属性。这是使用私有财产的危险。并不能保证它能在下一个操作系统版本中运行。

如果Apple检测到您正在执行的操作,他们会拒绝您的应用。

除非有这样做的公共界面,否则你可能会失败。 (而且我不知道用于更改日期选择器的文本颜色的公共界面。)

答案 2 :(得分:1)

打开选择器时,文本颜色似乎重置。

我可以使用以下方式更改文本颜色:

setValue(UIColor.white, forKey: "textColor")

日期选择器出现在屏幕上。之后很快做到并且不明显。

我不确定你如何使用你的选择器,但我已将我的设置为文本字段的输入视图,因此能够使用textfield委托:

func textFieldDidBeginEditing(textField: UITextField)

知道拣货员何时被打开。

我确实需要稍微延迟发送才能正常生效。

更新

使用UILabel的外观和公共textColor属性,可以更好地实现UIDatePicker的私有textColor属性。

UILabel.appearanceWhenContainedInInstancesOfClasses([UIDatePicker.self]).textColor = UIColor.whiteColor()

在日期选择器显示工作后仍需要调用它。