在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上轻松做到这一点?
答案 0 :(得分:2)
对于iOS(我会让更多熟悉Android开发的人回答第二部分),你会想要使用sizeWithFont:
的变体。根据您是否希望允许多行,您应该查看我链接的文档中说明的各种方法。
我通常认为最有用的是sizeWithFont:constainedToSize:
,其中我将约束大小设置为我在视图中可用的有限宽度,以及CGFLOAT_MAX
的高度,这允许标签为根据需要使用尽可能多的垂直空间(因为我经常在垂直滚动视图中有标签)。