Ich habe ein UILabel
, das ein NSAttributedString
anzeigt. Die Zeichenfolge enthält Text und UIImage
als NSTextAttachment
.
Gibt es beim Rendern eine Möglichkeit, die Position von NSTextAttachment
in UILabel
zu erhalten?
Bearbeiten
Hier ist das Endergebnis, das ich erreichen möchte.
Wenn der Text nur 1 Zeile lang ist, sollte das Bild direkt am Rand von UILabel
sein. Einfach:
Das Problem tritt auf, wenn Sie mehrere Zeilen haben, aber das Bild immer noch am Ende der letzten Zeile stehen soll:
Ich kann mir eine Lösung vorstellen (die eher ein Workaround ist) und sie ist nur in begrenzten Fällen anwendbar. Angenommen, Ihr NSAttributedString
enthält Text auf der linken Seite und Bild auf der rechten Seite, können Sie die Größe des Textes berechnen und die Position von NSTextAttachment
mit sizeWithAttributes: . Dies ist keine vollständige Lösung, da nur die x
-Koordinate (d. H. Die width
des Textteils) verwendet werden kann.
Ich hoffe, dies gibt Ihnen einen Hinweis.
BEARBEITEN:
Wenn Sie Zeilenumbrüche haben, können Sie den folgenden Code versuchen ( string
ist die Zeichenfolge, die Sie in die UILabel setzen und self.testLabel
ist die UILabel):
Tags und Links objective-c ios uilabel nsattributedstring nstextattachment