簡體   English   中英

在滾動視圖中看不到表格視圖

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM