DHStyleString 0.2.0

DHStyleString 0.2.0

测试测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

David House 维护。



StyleString

用法

要运行示例项目,请首先从 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];

未来工作

  • 关于stylespec文件中可能属性的完整文档。目前,请查看示例项目中包含的test.stylespec文件。
  • 在解析文件时进行更好的错误检查,尤其是样式字符串文件。

作者

大卫·豪斯,[email protected]

许可证

StyleString可在MIT许可证下使用。更多信息请参阅LICENSE文件。