【问题标题】:iOS: UILabel text setting issueiOS:UILabel 文本设置问题
【发布时间】:2015-06-03 21:53:05
【问题描述】:

我使用过 AutoLayout。如果文本中的问题编号和问题显示在同一行中 文字很大,问题显示为 2 行,当时问题编号显示在问题之间

我已经像这样设置了自动布局

我想要第一个问题编号和问题在同一行,如下图所示

【问题讨论】:

  • 抱歉,您的问题有点难以理解。请编辑问题并更清楚。
  • 你能检查我的问题吗,我现在已经编辑了
  • 你的意思是如果问题排成一行,问题和问题的数字对齐在一起,但如果问题占据多行,数字对齐到中间?
  • 如果问题是多行 --> QuestionNumber 应该在第一行
  • 如何渲染数字 Q1 和 Q2?

标签: ios objective-c autolayout uilabel


【解决方案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 到它的父视图。这将确保它与单行或多行文本的第一行对齐

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 2010-10-31
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      相关资源
      最近更新 更多