获取文本高度取决于宽度

时间:2014-01-25 23:16:05

标签: ios objective-c text width uitextview

我有一个包含任意数量字符的NSString。 现在用魔杖把这个String画成一个矩形。 rect需要例如250像素宽。

我知道如何获得这篇文章的高度 具有特定的字体和大小。

2 个答案:

答案 0 :(得分:-1)

来自NSString UIKit Additions(https://developer.apple.com/library/ios/documentation/uikit/reference/NSString_UIKit_Additions/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/NSString/sizeWithFont:constrainedToSize:)

使用 sizeWithFont:constrainedToSize:lineBreakMode:

使用它的方式是在你的情况下使用宽度为250的约束和一些非常高的高度(比方说10000)。 然后它返回实际宽度(可能略小于250)和所需的高度。

但请注意,它最近被弃用了。您可以使用 boundingRectWithSize:选项:属性:背景: 从iOS 7开始。通常,弃用的方法会存在一段时间,但您不能依赖它。因此,如果您希望您的应用程序在iOS 6或更早版本中运行,那么您可能会使用已弃用的方法一段时间,或者您可以检查操作系统并使用旧方法或新方法继续。

如果您使用的是OS-X而不是iOS,请致歉。在那种情况下,我的答案根本没有帮助。你没有标记操作系统。

答案 1 :(得分:-1)

您可以使用'sizeWithFont:'方法获取高度和宽度,如下所示:

UIFont *myFont = [UIFont boldSystemFontOfSize:15.0];

// Get the width of a string ...
CGSize size = [@"Some string here!" sizeWithFont:myFont];

CGSize是一种C结构,因此您可以按如下方式访问高度和宽度:

  // Print height and width
  NSLog(@"h: %f \t w:%f", size.height, size.width);