2016-12-21 2 views
-1

Ich verwende Swift 3. Ich habe zwei txtFields, eine davon für E-Mail, die andere für Passwort. Ich verwende den folgenden Code, um dem E-Mail-Feld, das eine Polsterung zu geben:Padding Einstellung für Passwort-Feld

txtEmail.leftView = paddingView; 
txtEmail.leftViewMode = .always 

jedoch die App scheint in eine Endlosschleife zu laufen, wenn ich die gleichen Passwort-Feld gelte:

txtPassword.leftView = paddingView; 
txtPassword.leftViewMode = .always 

Was ist Ich vermisse?

+0

Wo setzen Sie diesen Code ein? –

+0

Erstellen Sie neue/andere PaddingView oder verwenden Sie diese in zwei Feldern? –

+0

Ich legte in ViewWillAppear und es ist die gleiche PaddingView für beide Felder: 'Lassen PaddingView = UIView (Frame: CGRect (X: 0, Y: 0, Breite: 10, Höhe: 30))' – Matt

Antwort

0

Diese UITextField Erweiterung wird die Implementierung später erleichtern und Probleme zu mit dem gleichen UIView auf mehreren Textfeldern im Zusammenhang lösen soll:

extension UITextField { 
    func pad(_ amount: Int) { 
     self.leftView = UIView(frame: CGRect(x: 0, y: 0, width: amount, height: self.frame.height)) 
     self.leftViewMode = UITextFieldViewMode.always 
    } 
} 

Dann können Sie es so in viewDidLoad verwenden oder irgendwo weiter unten in der Ansicht Aufrufhierarchie der Steuerung

txtEmail.pad(15) 
txtPassword.pad(15) 
0

Als Ihre Code-Anzeige verwenden Sie das gleiche Ansichtsobjekt für beide Textfelder zur gleichen Zeit und deshalb ist Ihre App in der Schleife. Sie können nicht dasselbe Ansichtsobjekt gleichzeitig als Unteransicht für zwei verschiedene Textfelder hinzufügen. Erstellen Sie eine neue Ansichtsinstanz und legen Sie sie als Auffüllung für einzelne Textdateien fest.

let paddingForEmail = UIView(frame: CGRectMake(0, 0, 15,txtEmail.frame.size.height)) 
    //Adding the padding to the Email textField 
    txtEmail.leftView = paddingForFirst 
    txtEmail.leftViewMode = UITextFieldViewMode .Always 

    //Create new padding object of view for second textField 
    let paddingForPassword = UIView(frame: CGRectMake(0, 0, 15,txtPassword.frame.size.height)) 

    //Add padding to the Password textField 
    txtPassword.leftView = paddingForPassword 
    txtPassword.leftViewMode = UITextFieldViewMode .Always 

hoffe das wird dir helfen.

Verwandte Themen