ios - 为什么这两个表的行高不同?

标签 ios swift uitableview

请查看下面的模拟器屏幕截图,您将看到:

  1. 带有三个按钮的水平堆栈 View
  2. 带有红色页眉、棕色页脚和浅灰色背景的表格 View
  3. 带有三个按钮的水平堆栈 View
  4. 带有青色页眉、橙色页脚和浅色深色背景的表格 View

我通过 Storyboard创建了该界面。在界面生成器中,我小心翼翼地以完全相同的方式创建两个表,但颜色除外。 我提供了一个 Xcode 屏幕截图,可能会有帮助。请注意,添加到原型(prototype)单元格的标签的边缘固定到单元格的边缘。

我没有采取任何操作来设置表格行高。在数据源的 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

最佳答案

在一张表中,即带有粉红色标题的表中,您的约束设置内容 View 的底部边缘以匹配标签的底部(因此您正在移动内容的底部边缘) View 到标签底部,使内容 View 的高度取决于标签的高度)。

在另一个中,您正在设置内容 View 的下边距以匹配标签的底部(因此您正在移动边距以对应于标签的底部,而不是底部边缘)。

关于ios - 为什么这两个表的行高不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636389/

相关文章:

ios - 具有大量数据 Swift 的 CollectionView

ios - 在 swift 中使用 bridgeToObjectiveC()

swift - Swift 3 中的 Firebase 语法

swift - 当我创建一个注销的segue时,导航 Controller 突然出现 - Swift

iOS 5 - 通过核心数据属性将 UITableView 划分为多个部分

ios - iOS 8 中单个 UITableViewCell 上有 2 个多行标签

ios - 通过按钮从 App 链接到 iTunes 艺术家

ios - 如何从 UITableView 中删除不需要的单元格或行

ios - 从 TableView 中删除行

ios - 当我按下按钮时打印用户坐标 - Swift