使用 layoutAnchor 填充超级视图
Fill super view using layoutAnchor
我有一个奇怪的问题,因为我无法使用布局锚点填充超级视图的整个区域
这是我来自自定义 UIView 的代码 class:
private func setupTableView() {
addSubview(tableView)
tableView.translatesAutoresizingMaskIntoConstraints = false
let margins = layoutMarginsGuide
let trailingAnchor = tableView.trailingAnchor.constraint(equalTo: margins.trailingAnchor)
let leadingAnchor = tableView.leadingAnchor.constraint(equalTo: margins.leadingAnchor)
let topAnchor = tableView.topAnchor.constraint(equalTo: margins.topAnchor)
let bottomAnchor = tableView.bottomAnchor.constraint(equalTo: margins.bottomAnchor)
NSLayoutConstraint.activate([trailingAnchor, leadingAnchor, topAnchor, bottomAnchor])
}
结果我在左侧和右侧网站上得到了奇怪的边距:
您正在布置 tableView
相对于 layoutMarginsGuide
的边距。如果你想让它到达你的 UIView
的边缘,那么你需要使用 UIView
:
的锚点
private func setupTableView() {
addSubview(tableView)
tableView.translatesAutoresizingMaskIntoConstraints = false
let trailingAnchor = tableView.trailingAnchor.constraint(equalTo: trailingAnchor)
let leadingAnchor = tableView.leadingAnchor.constraint(equalTo: leadingAnchor)
let topAnchor = tableView.topAnchor.constraint(equalTo: topAnchor)
let bottomAnchor = tableView.bottomAnchor.constraint(equalTo: bottomAnchor)
NSLayoutConstraint.activate([trailingAnchor, leadingAnchor, topAnchor, bottomAnchor])
}
我有一个奇怪的问题,因为我无法使用布局锚点填充超级视图的整个区域
这是我来自自定义 UIView 的代码 class:
private func setupTableView() {
addSubview(tableView)
tableView.translatesAutoresizingMaskIntoConstraints = false
let margins = layoutMarginsGuide
let trailingAnchor = tableView.trailingAnchor.constraint(equalTo: margins.trailingAnchor)
let leadingAnchor = tableView.leadingAnchor.constraint(equalTo: margins.leadingAnchor)
let topAnchor = tableView.topAnchor.constraint(equalTo: margins.topAnchor)
let bottomAnchor = tableView.bottomAnchor.constraint(equalTo: margins.bottomAnchor)
NSLayoutConstraint.activate([trailingAnchor, leadingAnchor, topAnchor, bottomAnchor])
}
结果我在左侧和右侧网站上得到了奇怪的边距:
您正在布置 tableView
相对于 layoutMarginsGuide
的边距。如果你想让它到达你的 UIView
的边缘,那么你需要使用 UIView
:
private func setupTableView() {
addSubview(tableView)
tableView.translatesAutoresizingMaskIntoConstraints = false
let trailingAnchor = tableView.trailingAnchor.constraint(equalTo: trailingAnchor)
let leadingAnchor = tableView.leadingAnchor.constraint(equalTo: leadingAnchor)
let topAnchor = tableView.topAnchor.constraint(equalTo: topAnchor)
let bottomAnchor = tableView.bottomAnchor.constraint(equalTo: bottomAnchor)
NSLayoutConstraint.activate([trailingAnchor, leadingAnchor, topAnchor, bottomAnchor])
}