【问题标题】:Setting the height of UIlabel设置 UIlabel 的高度
【发布时间】:2016-08-21 11:59:24
【问题描述】:

我有一个位于自定义 uitableview 单元格中的标签。我正在使用自动布局来定位标签。我的问题是,当标签没有任何文本时,如何将标签的高度设置为零。或者如何使标签高度为 0。该项目支持 ios 8,因此使用 stackview 是不可能的。标签也很宽,我无法设置恒定的高度约束。我的布局如下。

【问题讨论】:

  • 去掉高度约束,numberOfLines 应该是 0,所以只有 top/leading/trailing 约束应该在那里。
  • 没有高度限制,行数为零。实际上,标签根据其内容计算其大小。但是当文本设置为 nil 时,它会占用单行标签的空间。
  • 如果只有 3 个约束,例如顶部/前导/尾随,它将起作用,请仔细检查您是否添加了底部约束?
  • 是的,它有四个约束。 (屏幕截图中的内容标签)它有四个约束。包含搜索图标的视图(透明)的前导、顶部、尾随和底部。
  • 删除UILabel 的底部约束对你来说很好,这就是一行可见的原因

标签: ios swift uitableview uilabel ios9


【解决方案1】:

您可以设置标签的高度限制 >= 0。标签将根据内容更新其大小,如果文本缺失,高度将为 0。

【讨论】:

    【解决方案2】:

    另一种可能的解决方案是,设置高度约束并取其outlet,并在文本为零时将其constant 设置为零。

    只需 ctrl + 从高度约束拖动到类以将出口连接到约束。

    然后您可以在需要时通过更改它的常量以编程方式更改它的高度。

    例如,

    @IBOutlet weak var labelHeightConstraint: NSLayoutConstraint!
    

    并改变常数,

     self.labelHeightConstraint.constant = 0
    

    希望这会有所帮助:)

    【讨论】:

      【解决方案3】:

      在 tableviewcell 中给出除 UILabel 之外的高度限制,您需要隐藏哪个。更改您的 Tableviewcell 高度它可以工作。

      例如,您的 UILabel 高度为“30”,tableviewcell 高度为 130。您可以在单元格高度中给出 130-30 = 100。

      //only sample code
      func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
      if indexPath.row == 0 
          return 130
      else 
          return 100
      

      }

      【讨论】:

        【解决方案4】:

        首先将高度约束设置为标签。 ctrl + 将高度约束拖动到类以将出口连接到约束。即

        @IBOutlet 弱变量 LabelHeightConstraint: NSLayoutConstraint!

        并在实现中将标签的高度约束设置为零。如下图……

        self.LabelHeightConstraint.constant = 0;
        if(check the label contains data)
        {
            self.LabelHeightConstraint.constant = 20;
        }
        else
        {
            self.LabelHeightConstraint.constant = 0;
        }
        

        这个逻辑肯定行得通……

        【讨论】:

        • 那个标签是膨胀的......所以要让这个东西工作我需要一种动态计算标签大小的方法
        • @Martin.. 使标签扩展设置宽度约束为标签,即 self.LabelWidthConstraint.constant = 10 * count 其中 count 是文本标签的长度
        【解决方案5】:

        在需要时将文本设置为 nil,并将内容拥抱优先级设置为高

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-06
          • 2012-07-12
          • 1970-01-01
          • 1970-01-01
          • 2021-09-02
          • 1970-01-01
          • 2021-08-12
          • 1970-01-01
          相关资源
          最近更新 更多