[英]Cannot see table view in scroll view
我正在尝试将表格视图添加到我的滚动视图中:
class ViewController: UIViewController {
let tableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
let scrollView = UIScrollView()
scrollView.backgroundColor = .red
view.addSubview(scrollView)
scrollView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
scrollView.topAnchor.constraint(equalTo: view.topAnchor),
scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
scrollView.addSubview(tableView)
tableView.backgroundColor = .yellow
tableView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
tableView.topAnchor.constraint(equalTo: scrollView.topAnchor),
tableView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor),
tableView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor),
tableView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor)
])
scrollView.contentSize = CGSize(width: view.bounds.width, height: 2000)
}
}
但是它没有显示。 它只显示滚动视图的背景颜色。 我在这里做错了什么?
这就是您测试中的所有代码吗? 您尚未设置 tableview 的数据源和委托,也没有返回任何单元格,因此它不会显示任何内容。
问题是 NSLayoutConstraint 中 tableView 的约束。
tableView.topAnchor.constraint(equalTo: scrollView.topAnchor),
tableView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor),
tableView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor),
tableView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor)
您使用 view.bottomAnchor 或任何其他代替 scrollView,例如:
tableView.topAnchor.constraint(equalTo: view.topAnchor),
tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor)
这将显示您的 tableView。 现在您可以尝试解决将 tableView 放入 scrollView 引起的其他问题。
不要在 Tableview 下使用 Scrollview ,它会使 scrollview无用。 当您填满表格时,Tableview 具有内置的滚动视图(种类),如果表格行很多并且 go 超出您的屏幕,则自动启用 tableview 中的滚动视图。 所以,只使用表格视图。
将heightAnchor
约束添加到您的表视图以解决此问题。 例如:
tableView.heightAnchor.constraint(equalToConstant: 4 * 80)
此示例将高度锚点添加到表视图(4 是行数,80 是行高)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.