更改日期选取器线条和字体颜色

时间:2019-03-05 14:45:46

标签: ios swift xcode customization uidatepicker

任何人都知道如何更改UIDatePicker的线条和字体颜色并避免使用私有Apple api? 我找到了,但这是非常肮脏的解决方案:

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

        for subview in self.datePicker.subviews {

            if subview.frame.height <= 5 {

                subview.backgroundColor = UIColor.white
                subview.tintColor = UIColor.white
                subview.layer.borderColor = UIColor.white.cgColor
                subview.layer.borderWidth = 0.5            }
        }

        if let pickerView = self.datePicker.subviews.first {

            for subview in pickerView.subviews {

                if subview.frame.height <= 5 {

                    subview.backgroundColor = UIColor.white
                    subview.tintColor = UIColor.white
                    subview.layer.borderColor = UIColor.white.cgColor
                    subview.layer.borderWidth = 0.5
                }
            }
            self.datePicker.setValue(UIColor.white, forKey: "textColor")
        }

2 个答案:

答案 0 :(得分:0)

尝试一下:

enter image description here

按代码或:

datePicker.setValue(UIColor.red, forKeyPath: "textColor")

答案 1 :(得分:0)

要更改所选DatePickerView矩形的颜色,您可以执行以下操作:

datePicker.subviews[0].subviews[1].layer.borderColor = UIColor.red.cgColor //any color you want
datePicker.subviews[0].subviews[1].layer.borderWidth = 1
datePicker.subviews[0].subviews[2].layer.borderColor = UIColor.red.cgColor //any color you want
datePicker.subviews[0].subviews[2].layer.borderWidth = 1

subviews[1]上方边框,而{{11}}是下方边框。
另外,您应该设置subviews[2]使其可见

要设置整个borderWidth的文本颜色,您可以这样做:

DatePicker