如果使用约束以编程方式布局UIView
子类,并且它包含一些多行标签,那么在给定任意宽度的情况下如何计算该视图所需的高度?
我知道方法systemLayoutSizeFittingSize:
,但这些方法似乎需要UILayoutFittingCompressedSize
而不是特定的宽度。如果没有我提供另一个,它怎么能返回准确的高度或宽度呢?
答案 0 :(得分:1)
据我所知,您需要单独计算每个标签的大小。这应该可以计算单个多行标签的大小。
CGSize boundingRectSize = CGSizeMake(widthToConstrainTo, CGFLOAT_MAX);
NSDictionary *attributes = @{NSFontAttributeName : [UIFont fontWithName:fontName size:fontSize]};
CGRect labelSize = [labelString boundingRectWithSize:boundingRectSize
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
attributes:attributes
context:nil];