我有以下問題:我可以更改uipicker內的行的文本顏色,但不是我想要的特定行的文本顏色,選擇器會變得很困惑,並且很多文本標籤變爲藍色。更改特定的行顏色uipicker
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *retval = (UILabel*)view;
if (!retval) {
retval= [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)];
}
retval.text = [arraySubSistemasDeSaude objectAtIndex:row];
if(pickerView == subSistemaSaudePicker) {
if ([retval.text isEqualToString:@"Seguros de saúde"]) {
NSLog(@"ROW=%d",row);
[retval setTextColor:[UIColor blueColor]];
}
if ([retval.text isEqualToString:@"Sistemas de Saúde e Equiparados"]) {
NSLog(@"ROW=%d",row);
[retval setTextColor:[UIColor blueColor]];
if ([retval.text isEqualToString:@"Seguradoras-Acidentes de Trabalho, viação/pessoais e vida"]) {
NSLog(@"ROW=%d",row);
[retval setTextColor:[UIColor blueColor]];
}
if ([retval.text isEqualToString:@"Empresas, associações e outras entidades"]) {
NSLog(@"ROW=%d",row);
[retval setTextColor:[UIColor blueColor]];
}
[retval setBackgroundColor:[UIColor clearColor]];
retval.font = [UIFont systemFontOfSize:14];
}
} else if(pickerView == horarioPicker) {
retval.text =[arrayHorarios objectAtIndex:row];
[retval setBackgroundColor:[UIColor clearColor]];
retval.font = [UIFont systemFontOfSize:14];
} else if(pickerView == examesPicker) {
retval.text =[arrayExames objectAtIndex:row];
[retval setBackgroundColor:[UIColor clearColor]];
retval.font = [UIFont systemFontOfSize:14];
} else if(pickerView == consultasPicker) {
retval.text =[arrayConsultas objectAtIndex:row];
[retval setBackgroundColor:[UIColor clearColor]];
retval.font = [UIFont systemFontOfSize:14];
}else {
assert(NO);
}
return retval;
}
對不起,我的英語不好,我希望我提出了自己清楚的問題,在此先感謝。
謝謝賈斯汀,完美的工作:) – 2012-08-03 15:14:32