Ich möchte ein Symbol / Bild in UITextField hinzufügen. Das Symbol / Bild sollte dem Platzhalter überlassen bleiben.
Ich habe es versucht:
var imageView = UIImageView();
var image = UIImage(named: "email.png");
imageView.image = image;
emailField.leftView = imageView;
Vielen Dank.
emailField.leftView = UIImageView(image: UIImage(named: "search"))
:)@IBDesignable
können wir dies auf elegante Weise tun, wie in diesem Beispiel: stackoverflow.com/a/51841433/8238512Antworten:
Versuchen Sie es hinzuzufügen
emailField.leftViewMode = UITextFieldViewMode.Always
(Standard
leftViewMode
istNever
)Aktualisierte Antwort für Swift 4
quelle
UITextFieldViewMode.Always
) versucht ? Haben Sie eine Vorstellung davon, was nicht funktioniert hat? (Hat es zum Beispiel kompiliert?)emailTextField
ändert sich das wirklich? Und bist du sicher, dass das Bild da ist? Erstellen Sie beispielsweise eine andere UIImageView und laden Sie dieimage
in diese, um zu überprüfen, ob dies funktioniert.imageView1.frame = CGRect(x: 5, y: 0, width: userName.frame.height, height: userName.frame.height) view.addSubview(imageView1)
Sahil hat eine großartige Antwort, und ich wollte sie in ein @IBDesignable erweitern, damit Entwickler ihren UITextFields im Storyboard Bilder hinzufügen können.
Swift 4.2
Was passiert hier?
Mit diesem Design können Sie:
Anmerkungen
Im Storyboard gestaltbar
Zur Laufzeit
quelle
Ich möchte hier nur noch etwas hinzufügen:
Wenn Sie das Bild
UITextField
auf der linken Seite hinzufügen möchten, verwenden Sie dieleftView
Eigenschaft vonUITextField
HINWEIS: Vergessen Sie nicht, Satz
leftViewMode
zuUITextFieldViewMode.Always
und für RechtrightViewMode
zuUITextFieldViewMode.Always and
Standard istUITextFieldViewModeNever
für zB
Zum Hinzufügen eines Bildes auf der linken Seite
Zum Hinzufügen eines Bildes auf der rechten Seite
HINWEIS: Einige Dinge, die Sie beachten müssen, wenn Sie ein Bild
UITextField
auf der linken oder rechten Seite hinzufügen .Vergessen Sie nicht, einen Rahmen anzugeben, den
ImageView
Sie hinzufügen möchtenUITextField
let imageView = UIImageView (Rahmen: CGRect (x: 0, y: 0, Breite: 20, Höhe: 20))
Wenn Ihr Bildhintergrund weiß ist, ist das Bild auf nicht sichtbar
UITextField
Wenn Sie der bestimmten Position ein Bild hinzufügen möchten, müssen Sie es
ImageView
als Unteransicht von hinzufügenUITextField
.Update für Swift 3.0
@ Mark Moeykens Wunderschön ausgegeben und @IBDesignable machen .
Ich habe hier einige weitere Funktionen geändert und hinzugefügt (Bottom Line und Polsterung für das rechte Bild hinzufügen).
HINWEIS Wenn Sie ein Bild auf der rechten Seite hinzufügen möchten, können Sie die
Force Right-to-Left
Option imsemantic
Interface Builder auswählen (das Auffüllen der richtigen Bilder funktioniert jedoch erst, wenn Sie die rightViewRect-Methode überschreiben).Ich habe dies geändert und kann die Quelle von hier ImageTextField herunterladen
quelle
Ein anderer Weg, inspiriert von früheren Beiträgen, um eine Erweiterung vorzunehmen.
Wir können das Bild rechts oder links platzieren
Verwenden :
Genießen :)
quelle
Um eine Auffüllung zu erstellen, platziere ich das Bild gerne in einer Containeransicht. Sie können die Hintergrundfarbe entfernen, sobald Sie mit der Platzierung der Symbole zufrieden sind.
quelle
Fügen Sie für Swift 3.0 ein Bild auf der linken Seite von textField hinzu
quelle
Swift 5
Ich habe eine Erweiterung erstellt
Ergebnis
quelle
Ich habe ein einfaches IBDesignable erstellt. Benutze es wie du willst. Lassen Sie einfach Ihr UITextField diese Klasse bestätigen.
quelle
Eine andere Möglichkeit, das Platzhaltersymbol und die Auffüllung auf TextField festzulegen.
quelle
2020 - vernünftige Lösung
In Bezug auf diesen Wahnsinn von Apple.
Hier ist vielleicht der "klarste", einfachste Weg, dies zu tun:
Zunächst müssen Sie den Text korrekt verschieben.
Beachten Sie diese wichtige Qualitätssicherung: https://stackoverflow.com/a/27066764/294884
Weiter müssen wir nun das linke Bild machen und verschieben:
Dies scheint der klarste und zuverlässigste Weg zu sein, dies zu tun.
quelle
Swift 3.1
quelle
Sie können diese Funktion in Ihre globale Datei oder über Ihre Klasse stellen, damit Sie in der gesamten Anwendung darauf zugreifen können. Nach diesem Vorgang können Sie diese Funktion gemäß Ihren Anforderungen in der Anwendung aufrufen.
quelle
Warum entscheiden Sie sich nicht für den einfachsten Ansatz? In den meisten Fällen möchten Sie Symbole wie "Font Awesome" hinzufügen. Verwenden Sie einfach die "Font Awesome" -Bibliothek, und es wäre so einfach, einem Textfeld ein Symbol hinzuzufügen:
Sie müssten zuerst diese schnelle Bibliothek installieren: https://github.com/Vaberer/Font-Awesome-Swift
quelle
Dies ist eine modifizierte Version von Mark Moeykens 'Antwort mit zusätzlichem Abstand zwischen Bild und Text und einstellbarer Bildgröße, falls jemand sie benötigt.
Swift 4
quelle
Swift 5
Ähnlich wie @Markus, aber in Swift 5 :
quelle
SwiftUI
Ergebnisse
quelle
Mit der Erweiterung in Swift4 können wir das Bild einfach rechts oder links platzieren, indem wir TextField auffüllen.
Verwenden Sie den Code für die Einrichtung des linken Bildes: -
Ausgabe :)
quelle