如何更改UIPickerView文本颜色?

时间:2018-01-25 20:47:57

标签: uipickerview swift4

文本的默认UIPickerView颜色为黑色。 Swift4中的语言有一些更新。我找到了自己的解决方案并在下面回答。

4 个答案:

答案 0 :(得分:15)

func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
    let titleData = data[row]
    let myTitle = NSAttributedString(string: titleData, attributes: [NSAttributedStringKey.foregroundColor: UIColor.yellow])

    return myTitle
}

答案 1 :(得分:2)

已针对Swift 5更新:

func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
    return NSAttributedString(string: parksPickerData[row], attributes: [NSAttributedString.Key.foregroundColor: UIColor.white])
}

答案 2 :(得分:1)

您可以使用:

pickerView.setValue(UIColor.yellow, forKeyPath: "textColor")

这只会改变当前所选行的颜色。

另请参阅:https://stackoverflow.com/a/9866686/5306470

答案 3 :(得分:1)

我有一个包含PickerViews和DatePickers的项目(位于TableViewCell内部),并且每种情况下我不得不使用不同的句子。

对于PickerViews:

func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
        let titleData = "data"
        let myTitle = NSAttributedString(string: titleData, attributes: [NSAttributedString.Key.foregroundColor: UIColor.lightGray])

        return myTitle
    }

对于DatePicker:

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