我正在尝试计算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/