我有一个自定义视图,其中我放置了UIImageView
和UILabel
。 Label的文本可以是任意大小,并且是动态设置的,因此我将标签numOfLines
设置为0。
此外,我正在使用Autolayout
。图像视图是我放置在标签右侧的图标,我需要图标和文本的上边缘对齐(而不是标签的顶部)。我已经尝试了几种方法来摆脱标签及其文本(sizeToFit
,sizeThatFits
)之间的填充,但没有成功,我需要标签的高度与文本的高度完全匹配能够将文本的顶部与图标对齐...我怎么能实现这一点?
答案 0 :(得分:0)
如果要在这种情况下将动态高度设置为标签,首先需要在storyboard / xib中检查该标签的prefferedmaxwidth选项,然后设置uilabel约束。
设置约束标签的顺序: - 1.顶部 领先 3.尾随
如果您当前的标签高度与要求不同,则会发出警告。 如果是这种情况,请为此标签选择“更新框架”选项。
现在设置底部约束。
无需调用sizetofit方法。 Autolayout将为您计算身高
答案 1 :(得分:0)
您可以通过使用以下代码
更改Label的高度约束来更改标签的高度CGSize size = [@"your text" boundingRectWithSize:CGSizeMake(label.bounds.size.width, 10000) options:(NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName : @"FontName"} context:nil].size;
labelHeightConstraint = size.height;