我正在尝试计算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的尺寸永远不会改变,因此会得到错误的值。这是为什么?

最佳答案

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

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

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

10-11 04:43