我有UIPicker
我用来打开和关闭图层。我希望能够更改选择器中行的颜色以指示该图层是否打开,或者更改文本的字体颜色以指示该图层是否已打开。
如果两者都不可能,我会追加nsstring
在我返回之前在其末尾添加一个X(如果图层打开,“街道”将成为“街道X”)。我也不知道怎么做。我知道你可以使用数字进行这种类型的抛光,但不确定NSString
。我知道选择器可以显示27个字符,所以可能将字符串长度设置为26,然后将位置26处的char设置为X?但我不知道如何设置字符串的长度。
任何一条路径的想法?
答案 0 :(得分:0)
对于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;
}