我有奇怪的问题,因为我无法使用布局锚
填充整个超视图区域这是我自定义UIView类的代码:
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])
}
结果我在左右两个网站上得到了奇怪的边距:
答案 0 :(得分:3)
您正在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])
}