2010-05-17 62 views
1

我在一个数据库(CoreData)中使用一个与多个组件相关的pickerView。 根据数据库中数据的存在情况,是否可以更改特定组件的fontcolor? 例如,数据库中的字段为空,组件字体颜色应该是RED,否则为黑色。UiPickerView根据数据改变字体颜色

任何帮助将不胜感激!

达里奥

================== 感谢肯尼,

我必须只适用于单一的UIPicker。所以我',返回视图parametere(没有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

是的,但你必须使用-pickerView:viewForRow:forComponent:reusingView:并提供自定义的UILabel。

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; 

}