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文本靠最顶部展示

iOS - UILabel

iOS--UILabel设置行距和字间距,并根据文本计算高度

Cocoa - iOS - 更新 UILabel 的文本属性是不是需要 setNeedsDisplay?

在 UILabel 中覆盖“文本”在 iOS 6 中不起作用

ios之UILabel实现文本自适应方法