如何根据位置更改 UIPickerView 标题文本颜色

宋敏珠

我想设置一个 UIPickerView 以便被选择的行的标题(在中心)是蓝色的,上下两行的文本颜色为黑色,其他的颜色为灰色。

所以它看起来像这样

在此处输入图片说明

有没有办法快速做到这一点?

德里克·卢西安

是的。以下示例针对一个组件。

var pickerArray = [String]()
var selectedRow: Int {
    return pickerView.selectedRow(inComponent: 0)
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    pickerView.reloadComponent(component)
}

func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
    var color = UIColor.gray

    if row == selectedRow {
        color = UIColor.blue
    } else if selectedRow == row - 1 || selectedRow == row + 1 {
        color = UIColor.black
    }

    return NSAttributedString(string: pickerArray[row], attributes: [NSAttributedString.Key.foregroundColor: color])
}

也许它存在另一种方式,但我认为这就足够了:]

// 更新 1:不推荐

您可以覆盖 (hitTest:point:event) 并从中返回 self ,然后在 (touchesMoved:touches:event) 上重新加载组件。但是选择器上的滚动和触摸将不起作用。您将需要做其他事情:(

// 更新2:结果: 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

更改UIPickerView文本的颜色

扩展UIPickerView更改标题颜色

如何在iOS中将UIPickerView文本颜色更改为白色

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

如何根据位置更改标题背景颜色

如何更改UIPickerView和UIDatePicker的字体颜色?

根据字符串更改选择 UiPickerView 文本

UIPickerView BarButton文本颜色不会更改,但单击按钮时,Objective-C中的颜色会更改

如何在Swift中使用多个组件更改UIPickerView的文本颜色?

如何更改本机通知标题文本颜色?

更改UIPickerView选择指示器的颜色

C#WindowsForm-如何根据背景颜色的暗淡来更改标签页标题的文本颜色?

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

使用colspan根据标题文本更改列的背景颜色

无法更改ActionBar标题文本颜色

无法更改ActionBar标题的文本颜色

在PreferenceActivity中更改标题文本颜色

更改导航标题文本颜色 SwiftUI

更改首选项标题的文本颜色

无法更改操作栏标题文本的颜色

如何根据屏幕大小更改文本的位置?

SweetAlert2 - 如何更改标题和文本颜色?

如何在Swift 4中更改NavBar标题文本的颜色?

如何更改UINavigationBar标题的字体和文本颜色

如何更改引导程序模式标题颜色(背景和文本)

UIPickerView 不同的背景/标题颜色不同的pickerLabel 集(Swift 3)

如何根据php条件更改文本颜色

如何根据主题更改TextFormField的文本颜色

如何根据$ value更改文本的颜色