Ich kenne die pickerView:viewForRow:forComponent:reusingView
Methode, aber bei der Verwendung der view
geht es in reusingView:
wie kann ich es ändern, um eine andere Textfarbe zu verwenden? Wenn ich view.backgroundColor = [UIColor whiteColor];
benutze, wird keine der Ansichten mehr angezeigt.Wie ändere ich die Farbe des Textes in einem UIPickerView unter iOS 7?
Antwort
Es gibt eine Funktion in der delegierte Methode, die mehr elegant ist:
Objective-C:
- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSString *title = @"sample title";
NSAttributedString *attString =
[[NSAttributedString alloc] initWithString:title attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
return attString;
}
Wenn Wenn Sie auch die Farben der Auswahlleiste ändern möchten, musste ich 2 separate UIViews
zu der Ansicht hinzufügen, die die 012 enthält, Abstand 35 Punkte auseinander für eine Picker Höhe von 180
Swift 3:
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
let string = "myString"
return NSAttributedString(string: string, attributes: [NSForegroundColorAttributeName:UIColor.white])
}
Swift 4:
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
let string = "myString"
return NSAttributedString(string: string, attributes: [NSAttributedStringKey.foregroundColor: UIColor.white])
}
Denken Sie daran, wenn Sie die Methode verwenden: Sie don 't muss titleForRowInComponent()
implementieren, wie es nie aufgerufen wird, wenn attributedTitleForRow()
verwendet wird.
Erstaunlich !! Dies ist das beste und sollte die richtige Antwort sein. Vielen Dank. – user1949873
Bei weitem ist dies die beste Antwort, da es auch für Auswahlansichten mit mehr als einer Komponente funktioniert. – PKCLsoft
Gute Arbeit. Ich habe eine Bearbeitung für Leute hinzugefügt, die ein Array zu Ihrer Antwort verwenden. Wenn das ein Problem ist, lass es mich wissen. – Rick
original post [hier] (can I change the font color of the datePicker in iOS7?)
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, pickerView.frame.size.width, 44)];
label.backgroundColor = [UIColor grayColor];
label.textColor = [UIColor whiteColor];
label.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:18];
label.text = [NSString stringWithFormat:@" %d", row+1];
return label;
}
// number Of Components
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
// number Of Rows In Component
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component
{
return 6;
}
Diese Lösung eignet sich für eine Auswahlansicht mit einer einzelnen Komponente. Wenn Sie mehr als 1 haben, überlappen sich die Beschriftungen von dem, was ich sehen kann. – PKCLsoft
Ich lief das gleiche Problem mit einem PickerView mit zwei Komponenten. Meine Lösung ist ähnlich wie oben mit ein paar Modifikationen. Da ich zwei Komponenten verwende, ist es notwendig, aus zwei verschiedenen Arrays zu ziehen.
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
UILabel *label = [[UILabel alloc] init];
label.backgroundColor = [UIColor blueColor];
label.textColor = [UIColor whiteColor];
label.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:18];
//WithFrame:CGRectMake(0, 0, pickerView.frame.size.width, 60)];
if(component == 0)
{
label.text = [countryArray objectAtIndex:row];
}
else
{
label.text = [cityArray objectAtIndex:row];
}
return label;
}
1. Go to storyboard
2. Select PickerView
3. Go to Identity inspector (3rd tab)
4. Add User Defined Runtime Attribute
5. KeyPath = textColor
6. Type = Color
7. Value = [Color of you choice]
in Xamarin, überschreiben die UIPickerModelView Methode GetAttributedTitle
public override NSAttributedString GetAttributedTitle(UIPickerView picker, nint row, nint component)
{
// change text white
string title = GetTitle (picker, row, component); // get current text from UIPickerViewModel::GetTitle
NSAttributedString ns = new NSAttributedString (title, null, UIColor.White); // null = font, use current font
return ns;
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel* pickerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, pickerView.frame.size.width, 37)];
pickerLabel.text = @"text";
pickerLabel.textColor = [UIColor redColor];
return pickerLabel;
}
Swift 4 (Update an die akzeptierte Antwort)
extension MyViewController: UIPickerViewDelegate{
}
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
return NSAttributedString(string: "your-title-goes-here", attributes: [NSAttributedStringKey.foregroundColor: UIColor.white])
}
}
Dies funktioniert: [? Kann ich die Schriftfarbe des Datepicker in iOS7 ändern]
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0,
pickerView.frame.size.width, 44)];
label.backgroundColor = [UIColor grayColor];
label.textColor = [UIColor whiteColor];
label.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:18];
label.text = [NSString stringWithFormat:@" %d", row+1];
return label;
}
// total Components
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
// total rows In Component
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:
(NSInteger)component
{
return 6;
}
Sieht aus wie das Kopieren/Einfügen einer der Antworten ist. Wo ist der Unterschied? – Sunil
- 1. Wie ändere ich die Farbe des Hyperlink-Textes in tinymce
- 2. Wie ändere ich die Farbe meines Textes in meiner UINavigationBar auf iOS 7?
- 3. Wie ändere ich die Farbe des iOS-Autokorrektur-Vorschlags?
- 4. Wie ändere ich die Farbe des Benutzereingabetexts?
- 5. Wie ändere ich die Farbe des UIAlertView-Dialogs in iOS?
- 6. Farbe des Textes in einem Javascript-Alarm
- 7. Wie ändere ich die Schriftart des Textes in Birt DEAPI
- 8. Wie ändere ich die Hintergrundfarbe eines Textes in einem Drehfeld?
- 9. Farbe des Textes in TextView ändert Farbe
- 10. Wie ändere ich, was die UIPickerView sagt?
- 11. Wie ändere ich die Farbe von UIImage in iOS?
- 12. Wie ändere ich die Farbe des Textes einer QProgressBar mit ihrem Wert?
- 13. UIPickerView: NSAtributedString nicht in iOS 7 verfügbar?
- 14. Wie ändere ich die Farbe in Drawable?
- 15. Wie ändert man die Farbe des Textes in javafx TextField?
- 16. Wie ändere ich die Farbe für einen Teil des Etiketteninhalts
- 17. Wie ändere ich die Farbe eines Textes, nachdem ich ihn mit jquery angeklickt habe?
- 18. Dynamisch Farbe des Textes in Cordova ändern
- 19. Wie ändere ich die Textgröße und die Komponentenbreite eines UIPickerView?
- 20. mmenu - Wie ändere ich die Farbe des Hamburger Symbols
- 21. Wie ändere ich die Farbe des ActionBar-Hamburgers?
- 22. Wie bekomme ich die Höhe des Textes in einem Textfeld
- 23. Wie ändere ich die fokussierbare Farbe?
- 24. Wie ändere ich die UINavigationBar-Farbe global?
- 25. Wie ändere ich die Hintergrundfarbe des Datagrids?
- 26. Wie ändere ich die Farbe des Textcursors in einem Eingabefeld in IE?
- 27. Wie ändere ich die Farbe der Umschalttaste?
- 28. Wie ändere ich die Farbe eines QGraphicsTextItems
- 29. Wie ändere ich die Farbe von Platzhalter Text
- 30. Wie ändere ich die Farbe eines Textes, wenn er mit jquery geklickt hat?
möglich Duplikat (http://stackoverflow.com/questions/18807940/can-i -change-the-font-Farbe-des-Datumsauswahl-in-ios7) –
@AaronBrager. Nach dieser Anfrage wird kein Duplikat des von Ihnen bereitgestellten Links abgefragt. –