【问题标题】:TableView not displaying whole tableViewCell (height)TableView 不显示整个 tableViewCell(高度)
【发布时间】:2018-01-23 15:02:51
【问题描述】:

我在 Xcode 8 上使用 Swift 3 构建一个带有 tableview 和自定义单元格的 ViewController。我在一个自定义单元格中有多个标签,并且我在初始化中使用以下代码设置了自动布局:

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 90.0

这是它在 Xcode 上的设置方式:

这是它在模拟器上的样子:

我尝试在右侧最后一个标签上设置约束,在运行时得到相同的结果。我是否需要将视图放在 CollectionView 之类的容器视图中?

【问题讨论】:

  • 您需要一个完整的 组约束,从内容视图的顶部到每个标签一直到内容视图的底部。我没有看到你这样做的证据。
  • 你需要确保你的底部有约束,就像你的底部标签应该有底部约束到单元格的底部,否则自动计算将不起作用
  • 我可以让单元格行显示所有标签,并设置约束并像其他人建议的那样玩弄它。谢谢
  • @Sonam 检查 2 件事的标签。 1) Lines 是否设置为 0 2) 你是否给标签设置了高度限制,那么你需要确保它有属性 >= 在它上面设置。link-:stackoverflow.com/questions/45680791/…

标签: ios swift xcode uitableview


【解决方案1】:

目前尚不清楚您施加了什么限制。但是,您必须需要将第一个标签固定到超级视图的顶部,并将最后一个标签固定到超级视图的底部,才能使自动尺寸工作。另外,请确保所有标签的顶部和底部都设置为彼此。

【讨论】:

    【解决方案2】:

    将顶部、底部、前导和尾随的自动约束设置为您想要的任何值。但是,此值是您希望脱离不同边距的许多像素。之后,将以下代码添加到viewDidLoad()

    tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 100

    通过使用 UITableViewAutomaticDimension,您告诉表视图使用自动布局约束,该约束将使用内容来确定高度。

    要使用 UITableViewAutomaticDimension,您需要指定 estimatedRowHeight。该值是一个任意值,将作为后备,您可以使用您认为对您的项目有益的任何值。让我知道这是否适合您。

    【讨论】:

      【解决方案3】:

      将您的控制器设置为 tableview 委托。

      UITableView 协议

      实现tableView(_:heightForRowAt:)方法
      return 90.0
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-15
        • 1970-01-01
        • 2017-04-30
        • 2012-05-12
        • 2017-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多