如何更改 UIPickerView 文本颜色?

Posted

技术标签:

【中文标题】如何更改 UIPickerView 文本颜色?【英文标题】:How to change the UIPickerView text color? 【发布时间】:2018-01-25 20:47:56 【问题描述】:

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

【问题讨论】:

【参考方案1】:
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? 
    return NSAttributedString(string: data[row], attributes: [NSAttributedStringKey.foregroundColor: UIColor.yellow])        

【讨论】:

【参考方案2】:

你可以使用:

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

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

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

【讨论】:

这只会在你为我移动选择器视图时改变颜色。【参考方案3】:

为 Swift 5 更新:

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

【讨论】:

【参考方案4】:

我有一个包含 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.setValue(UIColor.lightGray, forKey: "textColor")

【讨论】:

以上是关于如何更改 UIPickerView 文本颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS 7下更改UIPickerView中文本的颜色?

如何在iOS 7中更改UIPickerView中的文本字体?

可以更改 UIPickerView 的全局文本颜色吗?

如何快速更改选择器视图的文本颜色? [复制]

如何更改 UIPickerView 选择器的颜色

如何更改材质ui表中所选行的文本颜色