Ustaw wypełnianie dla UITextField za pomocą UITextBorderStyleNone: Swift
Na podstawie najbardziej głosowanej odpowiedzi @Evil Trout stworzyłem niestandardową metodę w mojej klasie ViewController, jak pokazano poniżej:
- (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]];
}
Teraz mogę wywołać tę metodę wewnątrz (metoda viewDidLoad) i wysłać dowolny z moich TextFields do tej metody i dodać dopełnienie dla prawej i lewej strony oraz podać kolory tekstu i tła, pisząc tylko jedną linię kodu w następujący sposób:
[self modifyTextField:self.firstNameTxtFld];
Działa to doskonale na iOS 7! Wiem, że dodanie zbyt dużej liczby widoków może spowodować, że ta klasa będzie nieco cięższa do załadowania. Ale zaniepokojony trudnością związaną z innymi rozwiązaniami, byłem bardziej stronniczy w stosunku do tej metody i bardziej elastyczny w używaniu tej metody. ;)
Dzięki za Hack „Evil Trout”! (kokarda)
Pomyślałem, że powinienem zaktualizować fragment kodu tej odpowiedzi za pomocą Swift:
Ponieważ Swift pozwala nam pisać rozszerzenia dla istniejących klas, napiszmy to w ten sposób.
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()
}
}
Stosowanie:
self.firstNameTxtFld.addPaddingToTextField()
Mam nadzieję, że pomogłoby to komuś innemu!
Twoje zdrowie!