在给定UIView的情况下计算iOS上的文本宽度

时间:2013-03-07 09:54:01

标签: android ios text-rendering

在Windows世界中,您可以执行此操作以获取文本宽度:

SIZE size;
GetTextExtentPoint(DC, "hello", strlen("hello"), &size)
printf("x = %i y = %i\n", size.x, size.y);
    // will print x = 30, y = 15 (for instance)

如果我手头有UIView句柄,我怎么能在iOS上轻松做到这一点?

1 个答案:

答案 0 :(得分:2)

对于iOS(我会让更多熟悉Android开发的人回答第二部分),你会想要使用sizeWithFont:的变体。根据您是否希望允许多行,您应该查看我链接的文档中说明的各种方法。

我通常认为最有用的是sizeWithFont:constainedToSize:,其中我将约束大小设置为我在视图中可用的有限宽度,以及CGFLOAT_MAX的高度,这允许标签为根据需要使用尽可能多的垂直空间(因为我经常在垂直滚动视图中有标签)。