更改 UIPicker 的行颜色或行文本颜色

Posted

技术标签:

【中文标题】更改 UIPicker 的行颜色或行文本颜色【英文标题】:Change UIPicker's row color or row text color 【发布时间】:2011-07-20 20:38:52 【问题描述】:

我有一个UIPicker 用来打开和关闭图层。我希望能够更改选择器中一行的颜色以指示该图层是否已打开,或者更改文本的字体颜色以指示该图层是否已打开。

如果两者都不可能,我将在返回之前附加 nsstring 在其末尾添加一个 X(因此,如果图层打开,“streets”将变为“streets X”)。我也不知道该怎么做。我知道你可以用数字做这种类型的抛光,但不确定用NSString。我知道选择器可以显示 27 个字符,所以也许将字符串长度设置为 26,然后将位置 26 的字符设置为 X?但是我不知道如何设置字符串的长度。

对任一路径有什么想法吗?

【问题讨论】:

请添加更多信息。什么语言,框架?至少添加正确的标签。 d'oh,是的,你是对的,对不起。添加标签 【参考方案1】:

对于 UIPickerView 中的自定义行,您必须实现 pickerView:viewForRow:forComponent:reusingView: 而不是 pickerView:titleForRow:forComponent:

在您的情况下,您只需使用UILabel 作为视图,并更改每行的文本颜色和文本字符串。

假设你只有一个组件:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

    UILabel *label;
    if (!view) // No view to re-use, create a new one
        label = [[UILabel alloc] initWithFrame://your frame here];
    else
        label = (UILabel*)view;

    label.text = // Your row text here
    if (//some flag to indicate that this row is selected)
        label.textColor = [UIColor redColor];
    else
        label.textColor = [UIColor blackColor];

    return label;


【讨论】:

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

make datagrid选中的行文本颜色是否透明?

动态更改 NatTable 中的行颜色

仅选择一行后如何更改数据网格中的文本,FLEX

我可以在 iOS7 中更改 datePicker 的字体颜色吗?

如何更改 UIPickerView 选择器的颜色

如何使用 facet_grid 和文本位置更改直方图的颜色?