我正在使用一个pickerView,其中包含与数据库(CoreData)中的多个字段相关的多个组件。 是否可以根据数据库中数据的存在更改特定组件的fontcolor? 例如,DB中的字段为空,组件字体颜色应为RED,否则为黑色。
任何帮助将不胜感激!
的Dario
================== 谢谢肯尼,
我只能申请一个UIPicker。所以我',返回视图参数(没有modificatiosn)。结果是所有选择器显示空行。
感谢您的帮助!
在这里您可以找到代码片段:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
if (pickerView == tipoPk){
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100,30)];
label.textColor = [UIColor redColor];
switch (component) {
case PK_Tipo:
label.text = [tipoArray objectAtIndex:row]];
break;
case PK_Settore:
label.text = [settoreArray objectAtIndex:row]];
break;
default:
break;
}
return label;
}
else {
return view; // <==== return view for non related pickerviews , but no rows shown
}
}
答案 0 :(得分:4)
这个也有效..
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
CGRect imageFrame = CGRectMake(0.0, 0.0, 15, 15);
UIImageView *label = [[[UIImageView alloc] initWithFrame:imageFrame] **autorelease**];
if (row == 0)
{
label.backgroundColor = [UIColor redColor];
}
if (row == 1)
{
label.backgroundColor = [UIColor blueColor];
}
if (row == 2)
{
label.backgroundColor = [UIColor blackColor];
}
return label;
}
答案 1 :(得分:0)
是的,但您必须使用-pickerView:viewForRow:forComponent:reusingView:
并提供自定义UILabel。