文本控件综述

2016-07-06  本文已影响21人  太郎君

SDK提供的文本控件

三个控件都支持attributedText,进而都可以直接原生显示html,具体代码如下:

NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[content dataUsingEncoding:NSUnicodeStringEncoding]
                                                                        options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType }
                                                             documentAttributes:nil
                                                                          error:nil];

特性:text和html风格统一

很多情况下,一个控件可能既要可以显示text,也要可以显示html,而它们的默认风格属性都一样。为了问题的简单化,这里只讨论UILabel。大家都知道UILabel的font和textColor属性只对text起作用,对attributedText不起作用,如果让后台或者前端区分text或者html,也是很蛋疼的一件事。

利用html的标签,在content外面封装一层默认属性。

浏览一下html常用标签,可发现span标签可以胜任该工作,具体代码如下:

+ (NSAttributedString *)attributedStringContent:(NSString *)content
{
    content = [NSString stringWithFormat:@"<span style=\"color:#8d8b8b; font-size:15px\">%@</span>", content];
    NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[content dataUsingEncoding:NSUnicodeStringEncoding]
                                                                            options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType }
                                                                 documentAttributes:nil
                                                                              error:nil];
    return attributedString;
}
上一篇 下一篇

猜你喜欢

热点阅读