正如在标题中一样,我无法理解属性字符串的用途,除了在UITableViewController中的UI(例如UIRefreshControl)之类的情况下使用它。
它带来了什么好处?是否只允许某些字符串具有自定义颜色,字体等?
答案 0 :(得分:1)
你是对的,这就是它的全部。它允许您将可视属性分配给字符串的任何部分。
事实上,在某些情况下它非常有用。例如,您可以在某些文本上添加删除线属性,以直观地指示文本已删除。
另一个例子,假设您有一个短段显示为黑色标签,带有属性字符串,您可以用红色突出显示几个关键字。
答案 1 :(得分:1)
NSAttributedString 非常有用。
在可以渲染自定义字体,自定义颜色为您的标签;它可以应用许多不同的文本样式,如下划线,删除线,粗体,斜体,标题;或高亮显示所需字符串的任何部分。
但在我看来,最好的部分是你甚至可以使用 NSAttributedString 在标签实例中呈现HTML文本,以防你想用CSS显示样式文本:
NSString *htmlString = @"<style>h1{ color: cyan }</style>"
"<h1>Hello World</h1> "
"<p>This is a paragraph</p>";
NSDictionary *option = @{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType };
NSError *dealDescriptionAttributedError;
NSData *dealDescriptionData = [string dataUsingEncoding:NSUTF16StringEncoding];
NSAttributedString *htmlAttributedString = [[NSAttributedString alloc] initWithData:dealDescriptionData
options:option
documentAttributes:nil
error:&dealDescriptionAttributedError];