请查看下面的模拟器屏幕截图,您将看到:
- 带有三个按钮的水平堆栈 View
- 带有红色页眉、棕色页脚和浅灰色背景的表格 View
- 带有三个按钮的水平堆栈 View
- 带有青色页眉、橙色页脚和浅色深色背景的表格 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
}
任何人都可以提出两个表的最终行高不同的可能原因吗?
最佳答案
在一张表中,即带有粉红色标题的表中,您的约束设置内容 View 的底部边缘以匹配标签的底部(因此您正在移动内容的底部边缘) View 到标签底部,使内容 View 的高度取决于标签的高度)。
在另一个中,您正在设置内容 View 的下边距以匹配标签的底部(因此您正在移动边距以对应于标签的底部,而不是底部边缘 View 的strong>)。
关于ios - 为什么这两个表的行高不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636389/