2015-01-22 4 views
8

Wie könnte man diesen Effekt erzielen: enter image description hereWie könnte man eine UILabel Wrap machen um ein Bild (wie abgebildet)

Vielleicht eine Art von NSAtributedString?

Ich habe an hacky Möglichkeiten gedacht, nur Leerzeichen hinzuzufügen, aber es muss es dynamisch basierend auf der Breite des Bildes tun.

Irgendwelche Ideen?


HINWEIS glücklich Sie dies ganz einfach mit UITextView tun können:

https://stackoverflow.com/a/20033752/294884

diese Frage ist etwa UILabel.

+0

Verwenden Sie ein 'UIWebView' und einen HTML-String/Snippet statt? Dieser Ansatz kann ähnlich wie ein "NSAttributedString" ausgeführt werden, ist aber viel mächtiger und gleichzeitig weniger stumpf. – aroth

+0

Vielleicht möchten Sie in TextKit suchen. Aus den Apple-Dokumenten: "Mit TextKit können Sie formatierten Text in Absätze, Spalten und Seiten formatieren; Sie können Text um beliebige Bereiche wie Grafiken herumfließen lassen" – rdelmar

+0

Überprüfen Sie meine Antwort unter –

Antwort

2

können Sie ein NSAttributedString verwenden, um mit einem NSTextAttachment

NSTextAttachment *attachment = [[NSTextAttachment alloc]init]; 
[attachment setImage:<#UIImage#>]; 
NSAttributedString* icon = [NSAttributedString attributedStringWithAttachment:attachment]; 
[attributedString insertAttributedString:icon atIndex:<#index#>]; 

aber es wird nur das Bild einfügen auf einer Linie, so pflegt es mehrere Zeilen auf der Seite davon hat (wie ein Zeitungsartikel), so dass ihre nur nützlich für kleine Bilder, die auf eine Zeile passen (Art wie, wie Sie es in Ihrer Frage habe ich denke)

8

hinzufügen Bild in Ihrem Etikett mit Text wie unten Code:

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"Here is some text that is wrapping around like an image"]; 

    NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init]; 
    textAttachment.image = [UIImage imageNamed:@"first.jpg"]; 

    NSAttributedString *attrStringWithImage = [NSAttributedString attributedStringWithAttachment:textAttachment]; 

    [attributedString insertAttributedString:attrStringWithImage atIndex:0]; 

    [_lbn setAttributedText:attributedString]; 

Ihre OUTPUT:

enter image description here