ios - 为什么这两个表的行高不同?
问题描述
请查看下面的模拟器屏幕截图,您将看到:
- 带有三个按钮的水平堆栈视图
- 带有红色页眉、棕色页脚和浅灰色背景的表格视图
- 带有三个按钮的水平堆栈视图
- 带有青色页眉、橙色页脚和浅色背景的表格视图
我通过情节提要创建了该界面。在界面生成器中,我小心翼翼地以完全相同的方式创建两个表,但颜色除外。我已经包含了一个可能有用的 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
}
任何人都可以提出两个表的最终行高不同的可能原因吗?
解决方案
在一张表中,它看起来像带有粉红色标题的表,您的约束设置内容视图的底部边缘以匹配标签的底部(因此您将内容视图的底部边缘移动到标签的底部以制作内容视图的高度取决于标签的高度)。
在另一个中,您正在设置内容视图的底部边距以匹配标签的底部(因此您正在移动边距以对应于标签的底部,而不是视图的底部边缘)。
推荐阅读
- r - getanID 函数不会为 R 中的组分配正确的值
- jenkins - 如果 jenkins 构建失败并重置构建号,则动态删除它
- ruby-on-rails - 我用 dokku 启动的 rails 应用程序总是失败(DigitalOcean)
- php - 我在将字符串值从 android 项目插入在线数据库时遇到问题
- ruby-on-rails - Ruby - 如何访问已解析 json 中的键值
- swift - 标签不会在键入时复制文本 - 尝试了许多解决方案(MacOS 应用程序)
- c# - 16 位 11025 单声道 WAVE 数据中的一个样本值
- java - JavaFX 11.0.2 不适用于 Intellij (java 11)
- wpf - 将非静态参数传递给 CollectionViewSource 中的过滤器
- mesh - 如何使用 Meshlab 查看导入的 OBJ 文件中的边和/或属的总数?