2017-09-10 1 views
0

UITextField zeigt seinen Inhalt Text gegen den linken Rand des Feldes, die hässlich ist und schwer zu lesen sein kann, wenn das Feld einen sichtbaren Rand hat. UITextView dagegen hat automatisch einen Padding (Leerzeichen) um den Text herum. Ich habe alle UITextField-Eigenschaften untersucht und mit ihnen experimentiert, aber ich sehe keine Möglichkeit, um den Text zu puffern.Wie kann ich ein UITextField mit Padding auf der linken Seite des Inhalts erstellen?

Ich versuchte auch Aufruf von drawText (in: CGRect) auf dem Textfeld, aber es hatte keine Wirkung. Aber ich bin nicht sicher, welche CGRect in diesem Anruf benötigt wird. Ich habe verschiedene Rahmenstile einschließlich .none ausprobiert. Ich habe auch versucht, eine leere UIView zu erstellen und diese der leftView-Eigenschaft des Textfelds zuzuweisen, aber das hatte auch keine Auswirkung. Und ich habe versucht, diese Dinge in ViewDidLoad, ViewDidAppear und an dem Punkt, wo ich den Text in das TextField schreibe. Der Text wird im textField wie erwartet angezeigt, aber keines dieser anderen Dinge scheint die Darstellung von textField in irgendeiner Weise zu beeinflussen. Es scheint mir, dass viele Leute Text in einem UITextField zeigen müssen und irgendwie auf der linken Seite gepolstert werden, damit ich etwas falsch verstehe, aber was ???

Antwort

0

Folgendes funktioniert für ein Feld namens "textField". Er fügt Padding ein, indem er die linke Seite des Feldinhalts um 8 Pixel nach rechts relativ zur linken Kante des Textes verschiebtField:

textField.layerUnterschichtTransform = CATtransform3DMakeTranslation (8, 0, 0);

Dies ist in einer Antwort auf eine andere Frage von Benutzer Dhiru (Ruf 1285) im November 2016 gegeben. Danke Dhiru!

Ich muss hinzufügen, dass ich weder mit SublayerTransform noch mit CATransform3DMakeTranslation vertraut bin, daher kann ich nicht sicher sein, dass dies keine Nebeneffekte hat, die nicht sofort offensichtlich sind. Ich bin ein bisschen besorgt, dass es "3D-Transformation" genannt wird, während es bei meiner Anwendung nichts 3D gibt. Aber zumindest scheint das jetzt die Frage zu beantworten.

Verwandte Themen