我在滚动视图中遇到tableview问题。该表在末尾被切除。
这是我的情节提要(表的滚动被禁用)。该按钮只是我的真实应用程序中某些内容的占位符:
这是表类(我从昨天的问题中知道了它,我只是无法解决问题):
class Table: UITableView, UITableViewDataSource, UITableViewDelegate{
let sections: [String] = ["Section 1", "Section 2", "Section 3"]
let s1Data: [String] = ["Row 1", "Row 2", "Row 3"]
let s2Data: [String] = ["Row 1", "Row 2", "Row 3"]
let s3Data: [String] = ["Row 1", "Row 2", "Row 3"]
var sectionData: [Int: [String]] = [:]
override func awakeFromNib() {
super.awakeFromNib()
delegate = self
dataSource = self
register(UINib(nibName: "Cell", bundle: nil), forCellReuseIdentifier: "Cell")
sectionData = [0:s1Data, 1:s2Data, 2:s3Data]
rowHeight = UITableViewAutomaticDimension
estimatedRowHeight = 96.0
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int)
-> Int {
return (sectionData[section]?.count)!
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int)
-> String? {
return sections[section]
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return sections.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "Cell")
return cell!
}
}
单元本身的高度为340,在表中应为其中的三个。
ViewController对表和表本身的高度有约束。我在stackoverflow上阅读了有关此解决方案的内容。当我在constraint-constant-set处设置断点时,高度大约为1000,因此这是正确的:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tableHeight: NSLayoutConstraint!
@IBOutlet weak var table: Table!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
tableHeight.constant = table.contentSize.height
}
}
我尝试了不同的建议,如何摆脱这种局面。但是我莫名其妙地错过了一些东西。有没有人给我建议。
最佳答案
在我看来,您没有设置从表视图底部到其 super 视图(滚动视图中的View)底部的约束。如果是这样,则视图将不会调整大小以适合其中的所有表格