0

来自https://developer.apple.com/library/ios/documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html#//apple_ref/occ/instm/NSString/sizeWithAttributes ::

UITextAttributeFont
文本属性字典中字体的键。
对应的值是 UIFont 的一个实例。
使用大小为 0.0 的字体来获取当前上下文的默认字体大小。
在 iOS 5.0 及更高版本中可用。
在 iOS 7.0 中已弃用。
在 UIStringDrawing.h 中声明。

我正在尝试获取特定单行文本字符串的宽度(也需要高度),这就是我现在所拥有的,“...”是我需要适当初始化字体的内容。该方法不完整(它不返回值),但我想要一种不推荐使用的方法来指定字体的信息并返回如果绘制字符串将有多少像素宽。

-(float)getLength:(NSString *)text
{
    CGSize size = [text sizeWithAttributes:[[NSDictionary alloc] initWithObjectsAndKeys:...];
}

语义是否从“在进行最终调用时指定字体详细信息”更改为“指定一次字体详细信息,它们将一直有效,直到您将它们更改为其他内容”?

谢谢,

4

1 回答 1

1

就在几天前,我正在为自己的工作寻找一个与您的问题非常接近的问题。

您正在寻找的调用(这将解决您的最终问题)是" boundingRectWithSize: options: attributes: context:",您将在其中传递您加载的 UIFont(从您的 TTF 文件)作为属性之一。

更好的是,使用 NSAttributedString 或 NSMutableAttributedString (它也有一个"boundingRectWithSize: options: context:" 方法,因为这样你就可以通过混合字体和字体样式来计算你的文本宽度和高度。

于 2013-09-23T17:03:03.700 回答