• NSAttributedString UIKit Additions 参考


    原文链接: http://blog.csdn.net/kmyhy/article/details/8895643

    原文:http://developer.apple.com/library/ios/#documentation/uikit/reference/NSAttributedString_UIKit_Additions/RevisionHistory.html

    概述

    UIKit  在 NSAttributedString 中加入了新的方法,以支持格式化文本的绘制、计算文本在绘制前的大小及空间。这些方法不影响文本的内容,只影响绘制的过程。

    默认,文本绘制使用本地坐标,内容从某个点向右向下绘制。当你放置文本内容时,记住文本块的左上角就是绘制的起点。

    你可以在主线程之外使用这些方法,但是,如果是支持NSStringDrawingContext 的任何方法,则无法跨过线程或 dispatch queue 共享 NSStringDrawiingContext。

    实例方法

    绘制文本

    • – drawAtPoint:
    • – drawInRect:
    • – drawWithRect:options:context:

    计算文本的空间

    • – size
    • – boundingRectWithSize:options:context:

    实例方法

    boundingRectWithSize:options:context:

     返回文本绘制所占据的矩形空间。

    - ( CGRect )boundingRectWithSize:( CGSize ) size options:( NSStringDrawingOptions ) options context:( NSStringDrawingContext *) context

    参数

    size

    宽高限制,用于计算文本绘制时占据的矩形块。

    Thewidth and height constraints to apply when computing the string’s boundingrectangle.

    options

    文本绘制时的附加选项。可能取值请参考 “NSStringDrawingOptions”

    context

    context上下文。包括一些信息,例如如何调整字间距以及缩放。最终,该对象包含的信息将用于文本绘制。该参数可为 nil 。

    返回值

    一个矩形,大小等于文本绘制完将占据的宽和高。

    讨论

    可以使用该方法计算文本绘制所需的空间。size 参数是一个constraint ,用于在绘制文本时作为参考。但是,如果绘制完整个文本需要更大的空间,则返回的矩形大小可能比 size 更大。一般,绘制时会采用constraint 提供的宽度,但高度则会根据需要而定。

    特殊情况

    为了计算文本块的大小,该方法采用默认基线。

    如果 NSStringDrawingUsesLineFragmentOrigin未指定,矩形的高度将被忽略,同时使用单线绘制。(由于一个 bug,在 iOS6 中,宽度会被忽略)

    兼容性

    • iOS 6.0 以后支持。

    声明于

    NSStringDrawing.h

    drawAtPoint:

    从指定点(当前图形上下文)开始绘制文本。

    - (void)drawAtPoint:( CGPoint ) point

    参数

    point

    当前图形上下文中的点,文本将从此开始绘制。该图形上下文的坐标系通常由当前正在绘制的视图定义。

    讨论

    该方法从某个点开始绘制整个文本。该方法根据 attributedstring 的属性来绘制行。如果文本中出现换行符,将进行换行,后续的文本将被放到下一行的最初位置。

    兼容性

    • iOS 6.0 以后支持.

    声明于

    NSStringDrawing.h

    drawInRect:

    在当前图形上下文的指定矩形内绘制文本。

    - (void)drawInRect:( CGRect ) rect

    参数

    rect

    指定绘制文本的矩形范围。

    讨论

    该方法在指定矩形内绘制尽可能多的文本内容,必要时会压缩字符。如果对于该矩形来说,文本内容太长,该方法绘制尽可能多的内容,剩余内容将被剪 切。该方法用 attributed string 的属性来绘制行。如果文本中出现换行符,将进行换行,后续的文本将被放到下一行的最初位置。

     兼容性

    • Available in iOS 6.0 and later.

    Declared In

    NSStringDrawing.h

    drawWithRect:options:context:

    用提供的选项将文本绘制到指定的矩形分为内。

    - (void)drawWithRect:( CGRect ) rect options:( NSStringDrawingOptions ) options context:( NSStringDrawingContext *) context

    参数

    rect

    指定在某个矩形中绘制文本。

    options

    文本绘制选项。可能取值请参考 “NSStringDrawingOptions”

    context

    上下文对象,用于包含信息:如何调整字间距以及缩放。最终,该对象包含的信息将用于文本绘制。该参数可为 nil。

    讨论

    该方法在指定矩形内绘制尽可能多的文本内容,必要时会对字符进行压缩。如果矩形内要绘制的文本内容太长,该方法将根据需要缩放字体,或者调整字符间距。

    该方法用 attributed string 的属性来绘制行。如果文本中出现换行符,将进行换行,后续的文本将被放到下一行的最初位置。

    特殊情况

    该方法采用默认基线。

    如果NSStringDrawingUsesLineFragmentOrigin 未指定,矩形的高度将被忽略,同时使用单线绘制。(由于一个 bug,在 iOS6 中,宽度会被忽略)

    兼容性

    • iOS 6.0 以后支持.

    声明于

    NSStringDrawing.h

    size

    返回文本绘制所需 size。

    Returns the sizerequired to draw the string.

    - ( CGSize )size

    返回值

    绘制完整文本所需的最小 size。

    讨论

    可以用该方法在绘制之前计算需要多大空间。

    兼容性

    • iOS 6.0 以后支持.

    声明于

    NSStringDrawing.h

    常量

    NSStringDrawingOptions

    文本绘制选项。

    enum {

       NSStringDrawingTruncatesLastVisibleLine= 1 << 5,

       NSStringDrawingUsesLineFragmentOrigin= 1 << 0,

       NSStringDrawingUsesFontLeading= 1 << 1,

       NSStringDrawingUsesDeviceMetrics= 1 << 3,

    };

    typedef NSInteger NSStringDrawingOptions;

    常量

    NSStringDrawingTruncatesLastVisibleLine

    如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。如果指定了NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略。

    NSStringDrawingUsesLineFragmentOrigin

    绘制文本时使用 line fragement origin 而不是 baseline origin。

    Theorigin specified when drawing the string is the line fragment origin and notthe baseline origin.

    NSStringDrawingUsesFontLeading

    计算行高时使用行间距。(译者注:字体大小+行间距=行高)

    NSStringDrawingUsesDeviceMetrics

    计算布局时使用图元字形(而不是印刷字体)。

    Usethe image glyph bounds (instead of the typographic bounds) when computinglayout.

    划线样式属性

    指定下划线或删除线样式。

    enum {

       NSUnderlineStyleNone = 0x00,

        NSUnderlineStyleSingle= 0x01,

    };

    常量

    NSUnderlineStyleNone

    不划线。

    NSUnderlineStyleSingle

    单线

    讨论

    可以在属性字串的 NSUnderlineStyleAttributeNameNSStrikethroughStyleAttributeName 属性上使用这些常量。

    字符属性

    字符属性可以应用于 attributed string 的文本中。

    NSString *const NSFontAttributeName;

    NSString *const NSParagraphStyleAttributeName;

    NSString *const NSForegroundColorAttributeName;

    NSString *const NSBackgroundColorAttributeName;

    NSString *const NSLigatureAttributeName;

    NSString *const NSKernAttributeName;

    NSString *const NSStrikethroughStyleAttributeName;

    NSString *const NSUnderlineStyleAttributeName;

    NSString *const NSStrokeColorAttributeName;

    NSString *const NSStrokeWidthAttributeName;

    NSString *const NSShadowAttributeName;

    NSString *const NSVerticalGlyphFormAttributeName;

    常量

    NSFontAttributeName

    该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)。

    NSParagraphStyleAttributeName

    该属性所对应的值是一个 NSParagraphStyle 对象。该属性在一段文本上应用多个属性。如果不指定该属性,则默认为 NSParagraphStyle 的defaultParagraphStyle 方法返回的默认段落属性。

    NSForegroundColorAttributeName

    该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的字体颜色。如果不指定该属性,则默认为黑色。

    NSBackgroundColorAttributeName

    该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的背景颜色。如果不指定该属性,则默认无背景色。

    NSLigatureAttributeName

    该属性所对应的值是一个 NSNumber 对象(整数)。连体字符是指某些连在一起的字符,它们采用单个的图元符号。0 表示没有连体字符。1 表示使用默认的连体字符。2表示使用所有连体符号。默认值为 1(注意,iOS 不支持值为 2)。

    NSKernAttributeName

    该属性所对应的值是一个 NSNumber 对象(整数)。字母紧排指定了用于调整字距的像素点数。字母紧排的效果依赖于字体。值为 0 表示不使用字母紧排。默认值为0。

    NSStrikethroughStyleAttributeName

    该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上删除线,该值参考 “Underline Style Attributes” 。默认值是 NSUnderlineStyleNone

    NSUnderlineStyleAttributeName

    该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上下划线,该值参考 “Underline Style Attributes” 。默认值是 NSUnderlineStyleNone

    NSStrokeColorAttributeName

    该属性所对应的值是一个 UIColor 对象。如果该属性不指定(默认),则等同于 NSForegroundColorAttributeName 。否则,指定为删除线或下划线颜色。更多细节见“ Drawing attributedstrings that are both filled and stroked ”。

    NSStrokeWidthAttributeName

    该属性所对应的值是一个 NSNumber 对象(小数)。该值改变描边宽度(相对于字体size 的百分比)。默认为 0,即不改变。正数只改变描边宽度。负数同时改变文字的描边和填充宽度。例如,对于常见的空心字,这个值通常为3.0。

    NSShadowAttributeName

    该属性所对应的值是一个 NSShadow 对象。默认为 nil。

    NSVerticalGlyphFormAttributeName

    该属性所对应的值是一个 NSNumber 对象(整数)。0 表示横排文本。1 表示竖排文本。在 iOS 中,总是使用横排文本,0 以外的值都未定义。

  • 相关阅读:
    motan rpc
    etcd:从应用场景到实现原理的全方位解读 转自infoq
    微信扫码登录实现原理
    商家历史数据查询及下载
    zookeeper No route to host
    hadoop 一些命令
    spring cloud 转
    Lombok 安装、入门
    Prometheus
    kvm虚拟机静态和动态迁移
  • 原文地址:https://www.cnblogs.com/geweb/p/3129353.html
Copyright © 2020-2023  润新知