要运行示例项目,请首先从 Example 目录运行 pod install
并克隆存储库。
此库针对 iOS 7.0 和更高版本。
创建所有属性字典并将它们应用到字符串以创建一个 NSAttributedString 对象非常繁琐,并且需要大量的代码。从 CSS 的工作方式中汲取一丝灵感,StyleString 库提供了一个 stylespec 格式,以一种类似于 JSON 的格式封装属性。一旦创建了一个 stylespec 文件,就可以使用方法生成从简单字符串到非常复杂的文本的所有属性字符串。
要使用此库,创建一个 stylespec 文本文件并将其添加到项目中。在此文件中,您可以创建任意多的样式,并且样式可以继承自其他样式。以下是一个小型示例
rightaligned {
"NSParagraphStyle": {
"alignment": "right"
}
}
redBold : rightaligned {
"NSColor": "0xFF0000",
"NSFont": {
"boldSystemFontOfSize": "18"
}
}
一旦有了 stylespec 文件,您就可以创建一个 DHStyleSpec 类的实例来与之交互。DHStyleSpec 有两个主要方法用于将原始字符串转换为属性字符串。第一个方法是 attributedString:style:,它将单个样式转换为一个属性字符串。
DHStyleSpec *spec = [[DHStyleSpec alloc] initWithName:@"test"];
// Style a single string
NSAttributedString *result = [spec attributedString:@"Can you dig it?"
style:@"redBold"];
创建属性字符串的第二个方法是使用 DHStyleString 类。此类可以从资源文件或字符串初始化。该类可以处理包含嵌入样式标签和多行字符串的替换标签。以下是一个样式字符串示例
start
#{speaker:dynamic_row0}
#{+indented}#{+body}I'll call upon you straight: abide within.#{-body}
#{+italic}Exeunt Murderers#{-italic}
#{+body}It is concluded. Banquo, thy soul's flight,
If it find heaven, must find it out to-night.#{-body}
#{+italic}Exit#{-italic}#{-indented}
#{source}
end
所有样式/替换标签都遵循 #{...} 格式。大括号中可以有 4 种可能的值
DHStyleString 类初始化后,可以调用 DHStyleSpec 方法 attributedStringFromStyleString:variables: 来生成完整的属性字符串。
DHStyleString *rawString = [[DHStyleString alloc] initWithName:@"mcbeth"];
DHStyleSpec *spec = [[DHStyleSpec alloc] initWithName:@"test"];
NSDictionary *variables = @{@"speaker":@"MACBETH",@"source":@"http://shakespeare.mit.edu/macbeth"};
NSAttributedString *result = [spec attributedStringFromStyleString:rawString variables:variables];
大卫·豪斯,[email protected]
StyleString可在MIT许可证下使用。更多信息请参阅LICENSE文件。