Legen Sie die Auffüllung für UITextField mit UITextBorderStyleNone: Swift fest
Basierend auf der am häufigsten gewählten Antwort von @Evil Trout habe ich in meiner ViewController-Klasse eine benutzerdefinierte Methode erstellt, wie unten gezeigt:
- (void) modifyTextField:(UITextField *)textField
{
UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];
textField.leftView = paddingView;
textField.leftViewMode = UITextFieldViewModeAlways;
textField.rightView = paddingView;
textField.rightViewMode = UITextFieldViewModeAlways;
[textField setBackgroundColor:[UIColor whiteColor]];
[textField setTextColor:[UIColor blackColor]];
}
Jetzt kann ich diese Methode im Inneren aufrufen (viewDidLoad-Methode) und alle meine TextFields an diese Methode senden und sowohl rechts als auch links Auffüllungen hinzufügen sowie Text- und Hintergrundfarben angeben, indem ich nur eine Codezeile wie folgt schreibe:
[self modifyTextField:self.firstNameTxtFld];
Dies funktionierte perfekt unter iOS 7! Ich weiß, dass das Hinzufügen zu vieler Ansichten dazu führen kann, dass diese Klasse etwas schwerer geladen werden kann. Als ich mir jedoch Sorgen über die Schwierigkeiten bei anderen Lösungen machte, war ich voreingenommener gegenüber dieser Methode und flexibler bei der Verwendung dieser Methode. ;)
Danke für den Hack "Evil Trout"! (Bogen)
Ich dachte, ich sollte das Code-Snippet dieser Antwort mit Swift aktualisieren:
Da wir mit Swift Erweiterungen für die vorhandenen Klassen schreiben können, schreiben wir es auf diese Weise.
extension UITextField {
func addPaddingToTextField() {
let paddingView: UIView = UIView.init(frame: CGRectMake(0, 0, 8, 20))
self.leftView = paddingView;
self.leftViewMode = .Always;
self.rightView = paddingView;
self.rightViewMode = .Always;
self.backgroundColor = UIColor.whiteColor()
self.textColor = UIColor.blackColor()
}
}
Verwendungszweck:
self.firstNameTxtFld.addPaddingToTextField()
Hoffe, das wäre hilfreich für jemand anderen da draußen!
Prost!