Ändern UIPickerView Schriftgröße für die verschiedenen Spalte
Bin ich den Bau einer UIPickerView, die funktioniert gut mit meinem folgenden code.
//Title for Row
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
if (component==kNumComponent)
return Number[row];
else if(component==kSeaComponent)
return Season[row];
else
return Course[row];
}
In denen Zahl -, Saison-und Natürlich sind die NSArray Speicherung der Zeichenfolge. Hier möchte ich die schriftart ändern, die Größe natürlich, in kleinere ein. Ich lernte einige Beispiel hier.
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *retval = (id)view;
if (!retval) {
retval= [[[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)] autorelease];
}
retval.font = [UIFont systemFontOfSize:22];
retval.text = [pickerViewArray objectAtIndex:row];
return retval;
}
Gibt es einen schnellen Weg für mich, um zu kombinieren den oben genannten code in meiner vorhandenen code, um die Schriftgröße zu ändern bitte? Sagen, ich Schätze mal übergeben müssen "Retval" irgendwo?
UPDATE: vielen Dank für Scotts ' s Tipp(siehe unten), habe ich meine Methode funktioniert,hier gepostet:
- (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.font = [UIFont systemFontOfSize:22];
if (component==kNumComponent)
retval.text = Number[row];
else if(component==kSeaComponent)
{retval.font = [UIFont systemFontOfSize:14];
retval.text = Season[row];}
else
{ retval.font = [UIFont systemFontOfSize:14];
retval.text = Course[row];}
return retval;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anpassen, um Ihre Farbauswahl, die Ansichten, die Sie haben zu verwenden
pickerView:viewForRow:
. Um dies zu tun, entfernen SiepickerView:titleForRow:
voll und ganz, und innerhalbpickerView:viewForRow:
legenretval
's text mit Hilfe der bedingten Sie ursprünglich verwendet inpickerView:titleForRow:
.Oder erstellen, anstatt ein label Untersicht können Sie direkt Bearbeiten Sie die Titel-schriftart mithilfe der
UIPickerViewDelegate
'spickerView:attributedTitleForRow:forComponent:
Methode, ex: