[英]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.