计算字符串绘制所需宽高

[str boundingRectWithSize: options: attributes: context:];

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

参数

size

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

options

文本绘制时的附加选项。

context

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

返回值

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

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

NSStringDrawingOptions

文本绘制选项。

enum {

   NSStringDrawingTruncatesLastVisibleLine= 1 << 5,

   NSStringDrawingUsesLineFragmentOrigin= 1 << 0,

   NSStringDrawingUsesFontLeading= 1 << 1,

   NSStringDrawingUsesDeviceMetrics= 1 << 3,

};

typedef NSInteger NSStringDrawingOptions;

常量

NSStringDrawingTruncatesLastVisibleLine

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

NSStringDrawingUsesLineFragmentOrigin

绘制文本时使用 line fragement origin 而不是 baseline origin。(整个文本将以每行组成的矩形为单位计算整个文本的尺寸。)

(fragement:断裂、拆分、破裂;碎片,片段;)

NSStringDrawingUsesFontLeading

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

NSStringDrawingUsesDeviceMetrics

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

原文地址:https://www.cnblogs.com/fuunnyy/p/4734358.html