使用boundingRectWithSize:options:attributes:context计算标签高度的ios代码返回一个比应该值多40像素的值
我有下面的代码,它根据我设置标签的文本来计算标签的高度。但我发现它总是比我反复尝试找到的值多40像素。有人有同样的问题吗?如果是,可能的解决方案是什么使用boundingRectWithSize:options:attributes:context计算标签高度的ios代码返回一个比应该值多40像素的值,ios,objective-c,Ios,Objective C,我有下面的代码,它根据我设置标签的文本来计算标签的高度。但我发现它总是比我反复尝试找到的值多40像素。有人有同样的问题吗?如果是,可能的解决方案是什么 NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:myLabel.font forKey:NSFontAttributeName]
NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:myLabel.font
forKey:NSFontAttributeName];
// width is the width of the label
CGSize size = CGSizeMake(width, NSUIntegerMax);
CGSize expectedLabelSize =
[text boundingRectWithSize:size
options:NSStringDrawingUsesLineFragmentOrigin
attributes:stringAttributes
context:nil].size;
// expectedLabelSize.height is 40 pixel than it should.
// If I manually - 40 from the value expected
谢谢。你试过用其他方法计算高度吗 首先设置标签的preferredMaxLayoutWidth属性 然后简单地调用标签的intrinsicContentSize以获取其内在大小,然后获取高度
它对我来说更简单,所以我一直在使用它。它比任何字符串的预期值都高40吗?你期望什么?为什么?您正在测试的字体、宽度和文本是多少?