iOS:UILabel 文本设置问题
Posted
技术标签:
【中文标题】iOS:UILabel 文本设置问题【英文标题】:iOS: UILabel text setting issue 【发布时间】:2015-06-03 21:53:05 【问题描述】:我使用过 AutoLayout。如果文本中的问题编号和问题显示在同一行中 文字很大,问题显示为 2 行,当时问题编号显示在问题之间
我已经像这样设置了自动布局
我想要第一个问题编号和问题在同一行,如下图所示
【问题讨论】:
抱歉,您的问题有点难以理解。请编辑问题并更清楚。 你能检查我的问题吗,我现在已经编辑了 你的意思是如果问题排成一行,问题和问题的数字对齐在一起,但如果问题占据多行,数字对齐到中间? 如果问题是多行 --> QuestionNumber 应该在第一行 如何渲染数字 Q1 和 Q2? 【参考方案1】:UILabel 始终以垂直轴为中心。
您需要做的是根据给定的文本和您使用的字体大小计算 UILabel 的高度。
这里有一个例子:
CGRect yourRect = [[NSString stringWithFormat:@"%@", yourTextHere]
boundingRectWithSize:CGSizeMake(200, 40)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@NSFontAttributeName: [UIFont whateverFontYouUse:21]
context:nil];
self.questionIdWidthConstraint.constant = yourRect.size.height + 1;
【讨论】:
【参考方案2】:确定为 Q1 标签添加另一个约束。 Top Space to Superview
到它的父视图。这将确保它与单行或多行文本的第一行对齐
【讨论】:
以上是关于iOS:UILabel 文本设置问题的主要内容,如果未能解决你的问题,请参考以下文章
iOS--UILabel设置行距和字间距,并根据文本计算高度
Cocoa - iOS - 更新 UILabel 的文本属性是不是需要 setNeedsDisplay?