Definir preenchimento para UITextField com UITextBorderStyleNone: Swift
Com base na resposta mais votada de @Evil Trout, criei um método personalizado na minha classe ViewController, como mostrado abaixo:
- (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]];
}
Agora eu posso chamar esse método dentro (método viewDidLoad) e enviar qualquer um dos meus TextFields para esse método, adicionar preenchimento para a direita e esquerda e fornecer cores de texto e plano de fundo escrevendo apenas uma linha de código, da seguinte maneira:
[self modifyTextField:self.firstNameTxtFld];
Isso funcionou perfeitamente no iOS 7! Sei que adicionar muitas visualizações pode tornar essa classe um pouco mais pesada para ser carregada. Mas, quando preocupado com a dificuldade em outras soluções, me vi mais inclinado a esse método e mais flexível ao usar esse método. ;)
Obrigado pelo hack "Evil Trout"! (arco)
Eu pensei em atualizar o snippet de código desta resposta com Swift:
Como o Swift nos permite escrever extensões para as classes existentes, vamos escrever dessa maneira.
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()
}
}
Uso:
self.firstNameTxtFld.addPaddingToTextField()
Espero que isso seja útil para alguém lá fora!
Felicidades!