2015-01-22 14 views
8

Làm thế nào bạn có thể đạt được hiệu ứng này: enter image description hereLàm thế nào bạn có thể làm cho một bọc UILabel xung quanh một hình ảnh (như được hiển thị)

Có lẽ một số loại NSAtributedString?

Tôi đã nghĩ đến các cách hacky để chỉ thêm không gian, nhưng nó cần phải tự động dựa trên chiều rộng của hình ảnh.

Bất kỳ ý tưởng nào?


LƯU Ý vui vẻ bạn có thể làm điều này rất dễ dàng với UITextView:

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

câu hỏi này là về UILabel.

+0

Sử dụng một 'UIWebView' và một chuỗi HTML/đoạn mã để thay thế? Cách tiếp cận đó có thể được thực hiện để làm việc tương tự như một 'NSAttributedString', nhưng mạnh mẽ hơn nhiều và cũng ít bị nguyền rủa cùng một lúc. – aroth

+0

Bạn có thể muốn xem xét TextKit. Từ tài liệu của Apple, "Sử dụng TextKit, bạn có thể đặt văn bản theo kiểu thành các đoạn, cột và trang; bạn có thể dòng văn bản quanh các vùng tùy ý như đồ họa" – rdelmar

+0

kiểm tra câu trả lời của tôi bên dưới –

Trả lời

2

Bạn có thể sử dụng một NSAttributedString với một NSTextAttachment

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

nhưng nó sẽ chỉ chèn hình ảnh trên cùng một dòng, vì vậy nó sẽ không có nhiều dòng xuống bên cạnh nó (như một bài báo), vì vậy nó chỉ hữu ích cho những hình ảnh nhỏ mà phù hợp trên cùng một dòng (loại giống như cách bạn có nó trong câu hỏi của bạn tôi đoán)

8

Thêm hình ảnh trong nhãn của bạn với văn bản như sau mã:

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]; 

bạn OUTPUT:

enter image description here

Các vấn đề liên quan