【发布时间】:2013-11-06 20:35:05
【问题描述】:
我正在尝试计算 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 的尺寸永远不会改变,因此我得到的值不正确。这是为什么呢?
【问题讨论】:
-
-(CGSize)sizeThatFits:返回文本适合标签的大小。
-
啊,好吧,它实际上也没有调整标签的大小吗?
-
是的,它只是返回一个尺寸。
-
@SeanDanzeiser: 允许您标记多行吗?
-
经过测试,当您的属性仅适用于您的文本范围时,boundingRectWithSize 方法无法计算正确。如果您的属性适用于所有文本范围,则可以正常工作。但是由于您没有提到您希望它在您的问题中第一次应用于属性文本,所以您对我的回答投反对票是不公平的
标签: ios uitableview uiview uilabel