为什么这两张桌子的行高不同?

时间:2018-10-03 22:11:31

标签: ios swift uitableview

请查看下面的模拟器屏幕快照,其中您将看到:

  1. 带有三个按钮的水平堆栈视图
  2. 具有红色页眉,棕色页脚和浅灰色背景的表格视图
  3. 带有三个按钮的水平堆栈视图
  4. 具有青色页眉,橙色页脚和浅黑色背景的表格视图

我通过情节提要创建了该界面。在界面生成器中,我小心地以完全相同的方式创建了两个表,除了颜色之外。 我提供了一个Xcode屏幕快照,可能会有所帮助。请注意,添加到原型单元的标签的边缘固定在单元的边缘。

我无处可设置表格行高。在数据源的cellForRowAt方法中,我正在打印像元高度:据报告它们是44个,我知道这是默认值。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell: UITableViewCell

    if tableView === upperTable {
        cell = tableView.dequeueReusableCell(withIdentifier: "upper")!
        (cell as! TableViewCell).label.text = upperData[indexPath.row]
        print("Upper table cell height = \(cell.bounds.height)")
    }
    else {
        cell = tableView.dequeueReusableCell(withIdentifier: "lower")!
        (cell as! TableViewCell).label.text = lowerData[indexPath.row]
        print("Lower table cell height = \(cell.bounds.height)")
    }

    return cell
}

有人能提出两个表的最终行高不同的可能原因吗?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

在一个表中,该表的标题看起来像粉红色,您的约束将内容视图的底部边缘设置为与标签的底部匹配(因此,您正在移动内容的底部边缘标签底部的视图,使内容视图的高度取决于标签的高度。

在另一种情况下,您要设置内容视图的底部页边距以匹配标签的底部(因此,您正在移动页边距以对应于标签的底部,而不是底部的边缘