【问题标题】:What is the current way in iOS to obtain a UIFont for a TTF you provide?iOS 中当前为您提供的 TTF 获取 UIFont 的方法是什么?
【发布时间】:2013-09-28 16:14:17
【问题描述】:

来自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:...];
}

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

谢谢,

【问题讨论】:

    标签: iphone ios objective-c ipad truetype


    【解决方案1】:

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

    您正在寻找的电话(这将解决您的最终问题)是"boundingRectWithSize: options: attributes: context:",您在其中将UIFont you loaded (from your TTF file) 作为属性之一传递。

    更好的是,使用 NSAttributedString 或 NSMutableAttributedString(其中也有 "boundingRectWithSize: options: context:" method,因为这样您就可以使用字体和字体样式的混合来计算文本的宽度和高度。

    【讨论】:

      猜你喜欢
      • 2010-09-08
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 2021-10-19
      • 2010-12-02
      • 2012-09-29
      • 2023-03-13
      相关资源
      最近更新 更多