Ich möchte am Anfang eines UITextField ein wenig Platz lassen, genau wie hier: Fügen Sie UITextField einen linken Rand hinzu
Aber ich weiß nicht, wie ich das mit Swift machen soll.
ios
swift
cocoa-touch
uitextfield
LinusGeffarth
quelle
quelle
UITextField.leftView = paddingView
. Geben Sie der Polsteransicht die gewünschte Breite.Antworten:
Dies ist, was ich gerade benutze:
Swift 4.2
Swift 4
Swift 3:
Ich habe nie eine andere Polsterung eingestellt, aber Sie können sie anpassen. Diese Klasse kümmert sich nicht um die rechte Ansicht und die linke Ansicht im Textfeld. Wenn Sie möchten, dass das richtig gehandhabt wird, können Sie so etwas wie (Beispiel in objc und ich brauchte nur die richtige Ansicht:
quelle
newBounds
Methode mit derUIEdgeInsetsInsetRect
Funktion zur Verfügung. Stattdessen könnenreturn self.newBounds(bounds)
Siereturn UIEdgeInsetsInsetRect(bounds, padding)
dienewBounds
Methode verwenden und entfernen .Wenn Sie eine Erweiterung verwenden, müssen Sie UITextField nicht unterordnen, und die neue Funktionalität wird jedem UITextField in Ihrer App zur Verfügung gestellt:
Wenn ich das Auffüllen eines Textfelds an einer beliebigen Stelle in meiner Anwendung festlegen muss, gehe ich einfach wie folgt vor:
Bei Verwendung von Swift-Erweiterungen wird die Funktionalität direkt ohne Unterklasse zum UITextField hinzugefügt.
Hoffe das hilft!
quelle
X, Y, Z sind Ihre gewünschten Werte
quelle
Ein solcher Spielraum kann durch Setzen von
leftView
/rightView
to erreicht werdenUITextField
.Aktualisiert für Swift 4
Ich habe gerade eine
UIView
linke und rechte Seite des Textfelds hinzugefügt / platziert . Nun beginnt die Eingabe nach der Ansicht.Vielen Dank
Hoffe das hat geholfen ...
quelle
Swift 4, Xcode 9
Ich mag die Antwort von Pheepster , aber wie wäre es, wenn wir alles von der Erweiterung aus machen, ohne VC-Code oder Unterklassen zu benötigen:
quelle
rightView?.frame.size.width ?? 0
paddingLeft
bispaddingLeftCustom
und die andere auch geändert . Wenn ich dies nicht getan hätte, wäre ein Fehler aufgetreten, der mir zwei Wochen folgte, wenn Sie Ansichten mit einer UITextView (wie UISearchBar) verwendet haben. Nur ... nicht die Standardnamen festlegen.in Swift 4.2 und Xcode 10
Anfangs ist mein Textfeld so.
Nach dem Hinzufügen von Auffüllungen auf der linken Seite ist mein Textfeld ...
Auf diese Weise können wir auch die rechte Seite erstellen. (TextFieldName.rightViewMode = .always)
Wenn Sie einen SharedInstance-Typcode wünschen (einmal schreiben, verwenden Sie jede Ware), lesen Sie den folgenden Code.
Rufen Sie diese Funktion nun so auf.
quelle
Einfache Swift 3-Lösung - Fügen Sie Code zu viewDidLoad hinzu:
Keine Notwendigkeit für lächerlich langen Code
quelle
Verwenden Sie meine Erweiterung Swift 5 getestet:
Wie benutzt man
quelle
So erstellen Sie eine Füllansicht für UITextField in Swift 5
quelle
Die Unterklasse UITextField ist der richtige Weg. Öffnen Sie einen Spielplatz und fügen Sie den folgenden Code hinzu:
quelle
Hier ist Haagentis Antwort, die auf Swift 4.2 aktualisiert wurde:
Referenz: Upgrade auf Swift 4.2 .
Bearbeiten : Schaltfläche zum Löschen des Kontos.
quelle
Erstellen Sie UIView mit dem erforderlichen Auffüllbereich, fügen Sie es dem Element textfield.leftView hinzu und setzen Sie das Element textfield.leftViewMode auf UITextFieldViewMode.Always
quelle
Fügen Sie diesen Code in Ihr
viewDidLoad()
:Für mich geht das :)
quelle
Diese eine Codezeile hat mich gerettet:
Für Xamarin.iOS:
Für Swift:
quelle
ScareCrows Antwort in Swift 3
quelle
In Swift 3. können Sie ein benutzerdefiniertes UITextField mit einem Einzug verwenden, der in seinem Konstruktor festgelegt ist. Keine zusätzliche Deklaration in einem Controller erforderlich.
quelle
Einfacher Weg: Dazu erweitern Sie UITextField
Dann können Sie die Polsterung auf folgende Weise auf eine beliebige Kante einstellen:
quelle
Ich bevorzuge die Verwendung von
IBDesignable
Klassen undIBInspectable
Eigenschaften, damit ich das Auffüllen über Xcode-Storyboards festlegen und wiederverwendbar halten kann. Ich habe auch den Code aktualisiert, um in Swift 4 zu funktionieren.quelle
* Erweitern von UITextField in Swift 5 *
quelle
quelle