gpt4 book ai didi

ios - UILabel sizeThatFits 不工作

转载 作者:可可西里 更新时间:2023-11-01 04:15:48 28 4
gpt4 key购买 nike

我正在尝试计算 UITableViewCell 的高度,所以我定义了一个看起来像这样的类方法

+ (CGFloat)heightWithText:(NSString *)text
{
SizingLabel.text = text;
[SizingLabel sizeThatFits:CGSizeMake(LABEL_WIDTH, CGFLOAT_MAX)];

return (TOP_MARGIN + SizingLabel.frame.size.height + BOTTOM_MARGIN);
}

我这样定义 SizingLabel:

+ (void)initialize
{
SizingLabel = [[UILabel alloc] initWithFrame:CGRectZero];
SizingLabel.numberOfLines = 0;
SizingLabel.lineBreakMode = NSLineBreakByWordWrapping;
}

但是,如果我在 -heightWithText: 方法中设置一个断点,我注意到 SizingLabel 的尺寸永远不会改变,因此我得到了一个不正确的值。这是为什么?

最佳答案

如上所述,sizeThatFits:(因此 sizeToFit)不能很好地与 UILabel 对象一起使用。

您最好使用首选的 textRectForBounds:limitedToNumberOfLines: 方法:

+ (CGFloat)heightWithText:(NSString *)text
{
resizingLabel.text = text;
CGSize labelSize = [resizingLabel textRectForBounds:CGRectMake(0.0, 0.0, LABEL_WIDTH, CGFLOAT_MAX)
limitedToNumberOfLines:0].size; // No limit

return (TOP_MARGIN + labelSize.height + BOTTOM_MARGIN);
}

关于ios - UILabel sizeThatFits 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19628568/

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