Wie unterlasse ich UITextField und überschreibe drawPlaceholderInRect, um die Platzhalterfarbe zu ändern
Ich habe eine 3 UITextField
mit Platzhaltertext festlegen. Auf einem der UITextField
möchte ich den Platzhalter text rot sein.
Nun nach googlen scheint es der beste Weg, dies zu tun ist, um eine Unterklasse UITextField und überschreiben drawPlaceholderInRect
.
Wie gehe ich über die Erben und überschreiben drawPlaceholderInRect
? Ich habe nicht gefunden alle code-Beispiele oder tutorials, ich bin neu in objective-c und iOS-Entwicklung, so finden Sie es schwierig, es herauszufinden.
Antwort:
Erstellt eine neue objective-c Klasse mit dem Namen CustomUITextFieldPlaceholder
die Unterklassen UITextField
. In CustomUITextFieldPlaceholder.m
fügen Sie den folgenden code
@implementation CustomUITextFieldPlaceholder
- (void)drawPlaceholderInRect:(CGRect)rect {
//Set colour and font size of placeholder text
[[UIColor redColor] setFill];
[[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:12]];
}
@end
Zur Umsetzung der oben in Ihrem Projekt
#import "CustomUITextFieldPlaceholder.h"
und
IBOutlet CustomUITextFieldPlaceHolder *txtName;
Hinweis: Dies funktioniert und, wie ich glaube, richtige Praxis, aber ich habe nicht vollständig getestet. Hoffe, dieses Beispiel hilft, andere in meiner situation.
Edit:
Geändert
[[UIColor redColor] setFill];
für
[[UIColor colorWithRed:255.0 green:0.0 blue:0.0 alpha:0.7] setFill];
So, ich könnte stellen Sie die Deckkraft auf 70% zu imitieren, Standard-Platzhalter.
InformationsquelleAutor der Frage Matt Price | 2011-05-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beantworten Ihnen spezifische Frage, das ist, wie subclassing:
Hier ist, wie das überschreiben der Methode:
Aber ich glaube nicht, dass das die Methode, die Sie überschreiben möchten. Ich denke, das ist, was Sie suchen:
InformationsquelleAutor der Antwort Erik B
Unterklassen nicht die Farbe ändern. Ich legte eine Arbeit hier in der Nähe.
UITextField-Platzhalter-schriftart-Farbe weiß-iOS 5?
InformationsquelleAutor der Antwort Jibran K
Ich denke, das wäre hilfreich
InformationsquelleAutor der Antwort VIPIN