gpt4 book ai didi

ios - 为什么 UITableView cell separatorInset 默认为 15,而 View Controller 的 Root View Layout Margins 是 16?

转载 作者:行者123 更新时间:2023-11-29 12:01:05 25 4
gpt4 key购买 nike

在 iPhone 6s 上,当我将单元格分隔线左插入设置为 14 时,显示为 15,我认为这是因为它默认设置了 preservesSuperviewLayoutMargins = true

但来自苹果文档:“边距根据 Controller 的呈现方式和位置而有所不同,但可以是 16 或 20 点(取决于设备)。您无法更改这些边距。”

当我通过自动布局将 View 添加到 Root View 的一侧并设置preservesSuperviewLayoutMargins = true时, Root View 的边缘到我添加的 View 的距离在iPhone 6s上为16,所以它没有与表格 View 的左边缘对齐。 UITableViewCell 如何使用 preservesSuperviewLayoutMargins = true,并且边距是 15,而不是 16?

最佳答案

经过一些日志,我知道为什么,那是因为:

tableView.preservesSuperviewLayoutMargins = false

并且表格View的layoutMargins在iPhone 6上是(8, 15, 8, 15); (8, 20, 8, 20) 在 iPhone 6 Plus 上。

在苹果文档上,只说:“默认边距是每边8点。您可以根据您的应用程序的需要修改这些边距。”

但是tableview的layoutMargins在viewDidLoad()上是(8,8,8,8),后来在iPhone 6上变成了(8,15,8,15)。

当我想添加一个左对齐到 TableView 的 View ,并且 subview 的左边缘左对齐到 TableView 分隔线时,这非常令人困惑。我必须像这样更新 View :

override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
totalBar.preservesSuperviewLayoutMargins = tView.preservesSuperviewLayoutMargins
totalBar.layoutMargins = tView.layoutMargins
}

这样我就不需要对 6 和 6 Plus 的边距值进行硬编码,甚至 Apple 也无需在未来更改该值。

关于ios - 为什么 UITableView cell separatorInset 默认为 15,而 View Controller 的 Root View Layout Margins 是 16?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36982576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com