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