`
xjk112
  • 浏览: 9471 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Introduction to Attributed String Programming Guide - Accessing Attributes

阅读更多

访问属性

    一个 attributed string 识别属性 by 名字, 在一个Map(which 是 依次和一个 NSRange[它显示 characters {字符- >那个map请求的字符}] 有关)中在对应的属性名下存储值.除了标准的属性外,你能分配一个范围的字符串给任何属性名-值对。

取回/检索属性值

       拥有一个非可变的 attributed string,在创造它的时候,你分配所有的属性.In Java,你用构造函数,In OC, 你用

比如"initWithString:attributes"(which 采用NSDictionary管理name-value对)的方法,或"initWithString"(which 分配no属性),And Application Kit对NSAttributedString的扩展采用一个RTF或HTML文件增加方法;可以通过看"Changing an Attributed String"得到关于分配给一个 mutable attributed string 的信息。

       为了从任何类型的 attributed string得到属性值, 用任何一个这些方法{

        attributesAtIndex:effectiveRange:

        attributesAtIndex:longestEffectiveRange:inRange:

        attribute:atIndex:effectiveRange:

        attribute:atIndex:longestEffectiveRange:inRange:

        fontAttt=ributesInRange

        rulerAttributesInRange:}

         这首先的两个方法在给定的index上返回所有属性,这 attribute:....方法返回单个被命名的属性的值,The Application Kit对NSAttributedString的扩展增加了"fontAttributesInRange:"和"rulerAttributesInRange"(which 返回 被定义去分别仅运用/申请字符串或整个段落)。

         这首先的四个方法也通过参照属性的有效范围和最长的有效范围进行返回。这些范围允许你去确认属性的范围。在概念上,在 attributed string 中的每个字符串都有它自己的属性集合,当在一系列字符串中属性和值是一样的情况下,知道它是非常有用的。这允许一个例行程序通过在块中的的 attributed string 而不是单个字符运行;在检索有效的范围时,一个 attributed string 简单的查阅在它的属性map中的信息(map 本质上是适用于请求的index的dictionary),在检索最长的有效range时,这 attributed string 继续检查字符串通过这基本的range只要这attribute的值是一样的。这额外的比较增加了执行的时间(which for 这些方法,但是保证了精确全面的被要求的属性范围);

有效的全面的范围

       那些通过引用返回有效范围的方法是不担保返回最全面的范围(which 属性请求),他们只是保证返回相同的范围相对于他们请求的。在实践中,他们会返回任何范围(which 是 容易的 可得到的 从 attributed string 的内部 存储 机制 [which 可能依赖于这些实现和在精确的历史修改 to attributed string]);

       那些通过引用返回最长有效范围的方法,在另一方面, 是保证了发回在传入的的参数值for in range 里面返回最长的范围包含指定的索引。for 效率,它(多么重要 inRange中的参数尽量合适interest to the client)

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics