gpt4 book ai didi

iphone - 什么是-[NSString sizeWithFont :forWidth:lineBreakMode:] good for?

转载 作者:IT老高 更新时间:2023-10-28 11:46:16 27 4
gpt4 key购买 nike

在我的问题“How do I get -[NSString sizeWithFont:forWidth:lineBreakMode:] to work?”中,我了解到 -[NSString sizeWithFont:constrainedToSize:lineBreakMode:] 实际上是我需要的。

-[NSString sizeWithFont:forWidth:lineBreakMode:] 的文档说明它实际上并没有将文本换行到其他行。那么我将如何使用它呢? (示例会有所帮助。)

最佳答案

它也适用于多行字符串。

基本上,它是一个函数,可让您查看使用字体和换行模式呈现时字符串的大小。

当我想在某个区域显示可变长度的文本时,我会在应用程序的几个地方使用它。

默认情况下,UILabel 会将文本垂直居中。要使文本顶部对齐,您需要将标签的大小调整为仅包含其中的字符串所需的高度。

我用这个方法来做这个。

我将如何使用它的示例如下:

//Calculate the expected size based on the font and linebreak mode of your label
CGSize maximumLabelSize = CGSizeMake(296,9999);

CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:yourLabel.lineBreakMode];

//adjust the label the the new height.
CGRect newFrame = yourLabel.frame;
newFrame.size.height = expectedLabelSize.height;
yourLabel.frame = newFrame;

您指定要放置文本的区域有多大,然后此方法会告诉您它将占用多少空间(根据需要换行)。此外,如果字符串会溢出您提供的 rect 的边界,您可以判断然后决定如何显示文本。

对它的引用实际上并没有包裹文本,因为这个方法实际上并没有对文本做任何事情。它只是虚拟地布置它并返回真正布置它需要多大的区域。

它负责执行包装/其他需要完成的操作。

希望对您有所帮助。

克里斯。

关于iphone - 什么是-[NSString sizeWithFont :forWidth:lineBreakMode:] good for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/455553/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com