Ответ 1
Не "простой" способ, но как насчет итерации через атрибуты строки, используя:
- (void)enumerateAttributesInRange:(NSRange)enumerationRange
options:(NSAttributedStringEnumerationOptions)opts
usingBlock:(void (^)(NSDictionary *attrs, NSRange range, BOOL *stop))block
Имейте переменную NSMutableString
, чтобы скопировать HTML (назовем его "html" ). В блоке вы создадите HTML вручную, используя строки. Например, если атрибуты текста "attrs" указывают красный, полужирный текст:
[html appendFormat:@"<span style='color:red; font-weight: bold;'>%@</span>", [originalStr substringWithRange:range]]
EDIT: Наткнулся на это вчера:
Категория NSAttributedString + HTMLFromRange от "UliKit" (https://github.com/uliwitness/UliKit/blob/master/NSAttributedString+HTMLFromRange.m)
Похоже, он будет делать то, что вы хотите.