2015-10-15 15 views
6

Ich möchte den Anfang des Textes von zwei UILabel s ausrichten. Ich habe die beiden UILabel s (mit dem gelben und grauen Hintergrund) ausgerichtet und sizeToFit: verwendet, um die UILabel s auf den Inhalt zu verkleinern, aber der Text ist nicht perfekt linksbündig. Links ist eine Lücke. Die Lücke ist abhängig vom ersten Zeichen größer oder kleiner. Ich möchte die roten Linien im folgenden Bild ausrichten. Es gibt sogar eine kleine Lücke mit der kleinen Schrift im grauen UILabel, aber es ist kaum sichtbar.Richten Sie zwei UILabel Texte

enter image description here

Mit dem Z Charakter der Lücke ist kleiner, aber immer noch sichtbar durch den gelben Bereich links nach Z

enter image description here

Eine einfache UILabel Ausrichtung nicht für mein spezielles Problem nicht helfen, denn Der Textinhalt ist dynamisch und nicht statisch. Also könnte es eine Kombination geben, abhängig von den Daten, die ich vom Backend bekomme. Deshalb habe ich auf ein oder UILabel Attribut gehofft, das die Größe der Lücke basierend auf dem aktuellen Rendering des Textes zurückgeben könnte.

Ich weiß, dass es große UIFont bezogene Attribute wie baseline, capHeight und ascender kann man zugreifen, um Text auszurichten, aber es scheint kein Attribut zu sein, die den Wert dieser Lücke auf der linken Seite zurückkehren würden.

+0

Haben Sie meine Lösung versucht? Irgendwelche Kommentare? –

+0

Ich habe "sizeToFit" in meinem Code entfernt und feste Etikettengrößen verwendet, um das mögliche Grundproblem von 'sizeToFit' zu eliminieren. Ich habe das "UILabel" breiter gemacht, um die richtige Alignment-Annahme zu eliminieren. Es ist immer noch das gleiche Problem. Es muss das Font-Rendering sein. –

Antwort

0

Wählen Sie beide Beschriftungen aus und fügen Sie eine Integritätsbedingung hinzu, die align leading edges heißt. enter image description here

0

Nutzung zugeschrieben Text von UILabel

Satz Einbuchtung wie pro Ihre Anforderung ref screen shot

enter image description here

0

Wenn dies braucht nicht zwei UILabels zu sein, können Sie eine mit zugeschrieben haben könnte Text. Dann würden beide Linien dem gleichen Layout unterliegen.

+0

Ihre Lösung klang vielversprechend und ich habe es versucht. Leider ist es bei einem UILabel genau so wie bei zwei UILabel's. Ich habe '\ n' verwendet, um einen Zeilenumbruch zum' NSAttributedString' hinzuzufügen und den 'NSFontAttributeName' für den Fontstyling hinzugefügt. Die gleichen linken Lücken erscheinen wie bei zwei separaten 'UILabel's –

+0

Dann ist dies wahrscheinlich eine Eigenschaft der Schriftart. Sie werden wahrscheinlich in einzelne Glyphen und Core Text kommen müssen. Viel niedrigeres Niveau. –

0

Ich habe nicht die GUI versucht, von der Leute Screen Shots veröffentlicht haben, aber ... das Verhalten stimmt mit der Natur der Typografie überein.

Die Schriftgrößen sind völlig unterschiedlich, daher ist die Breite eines Em unterschiedlich, folglich ist der Buchstabenabstand auch anders.

Siehe auch: http://www.w3.org/WAI/GL/css2em.htm für weitere Informationen.

Ich weiß, diese Antwort gibt Ihnen nicht, was Sie gefragt haben, aber es sollte erklären, warum das passiert.

Für die Anpassung wie diese (wenn HTML und CSS) würde ich eine negative/positive Marge auf den Untertext verwenden, aber da Sie Hintergründe verwenden Padding (oder das Äquivalent in Ihrer GUI).

+0

Vielen Dank für Ihren Kommentar. Ich denke, Sie haben Recht, dass dieses Verhalten nur die normale Typografie einer Schrift ist. Ich habe verschiedene Schriftarten verwendet, um festzustellen, ob die verwendete Schriftart die Quelle für das Verhalten war. Aber auch andere Schriftarten erzeugen diese linke Lücke. –

+0

Ich habe dieses Problem kürzlich auf der Microsite erlebt, die ich für mein Grid-System erstellt habe: http://interiorsystem.co.uk - schau dir den obersten, orangefarbenen Hintergrund an. Die 2 Zeilen Text zeigen dies. Ich musste die Marge nutzen, um sie aufzureihen. –

+0

Sieht gut aus. Wenn Sie festen Text und nichts dynamisches haben, ist dies definitiv die einfachste Lösung. In meinem Fall habe ich jedoch vollständige dynamische Texte und eine feste Marge löst sie nicht für alle möglichen Kombinationen. –

Verwandte Themen