Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UiPickerView根据数据更改字体颜色_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone UiPickerView根据数据更改字体颜色

Iphone UiPickerView根据数据更改字体颜色,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我正在使用一个pickerView,其中包含与数据库(CoreData)中多个字段相关的多个组件。 是否可以根据数据库中存在的数据更改特定组件的fontcolor? 例如,DB中的字段为空,组件字体颜色应为红色,否则为黑色 任何帮助都将不胜感激 达里奥 ================== 谢谢你,肯尼 我只需要向一个挑选者申请。因此,I'返回视图参数(无需修改)。结果是所有选择器都显示空行 谢谢你的帮助 您将在此处找到代码片段: - (UIView *)pickerView:(UIPick

我正在使用一个pickerView,其中包含与数据库(CoreData)中多个字段相关的多个组件。 是否可以根据数据库中存在的数据更改特定组件的fontcolor? 例如,DB中的字段为空,组件字体颜色应为红色,否则为黑色

任何帮助都将不胜感激

达里奥

================== 谢谢你,肯尼

我只需要向一个挑选者申请。因此,I'返回视图参数(无需修改)。结果是所有选择器都显示空行

谢谢你的帮助

您将在此处找到代码片段:

  - (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
}  


}
-(UIView*)pickerView:(UIPickerView*)pickerView视图for行:(NSInteger)行for组件:(NSInteger)组件重用视图:(UIView*)视图{
if(pickerView==tipoPk){
UILabel*label=[[UILabel alloc]initWithFrame:CGRectMake(0,01000,30)];
label.textColor=[UIColor redColor];
开关(组件){
案件PK_Tipo:
label.text=[tipoArray objectAtIndex:row]];
打破
案例PK_Settore:
label.text=[settoreArray objectAtIndex:row]];
打破
违约:
打破
}
退货标签;
}
否则{

返回视图;//是的,但您必须使用
-pickerView:viewForRow:forComponent:reusingView:
并提供自定义UILabel。

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

此选项也适用

- (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;
}

这个也可以

- (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;
}