我想在ScrollView中容纳UIView和Tableview,但是表视图的高度并没有根据可用单元格动态增加。
我所做的是。
self.tableViewHeightConstraint.constant = self.myNewTableView.contentSize.height self.view.layoutIfNeeded()
但是TableView Height并没有根据单元格增加
Here是“我的代码”的示例代码。
TableviewCell:-
import UIKit
class NewTableViewCell: UITableViewCell {
@IBOutlet weak var testLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
ViewController:-
import UIKit
class NewViewViewController: UIViewController {
@IBOutlet weak var myNewTableView: UITableView!
@IBOutlet weak var tableViewHeightConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
myNewTableView.rowHeight = 60
myNewTableView.estimatedRowHeight = UITableView.automaticDimension
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
}
}
extension NewViewViewController:UITableViewDelegate,UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 20
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "NewTableViewCell", for: indexPath) as! NewTableViewCell
cell.testLabel.text = "Testing the height of tableview"
self.tableViewHeightConstraint.constant = self.myNewTableView.contentSize.height
self.view.layoutIfNeeded()
return cell
}
}
答案 0 :(得分:1)
您需要在此处添加
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.tableViewHeightConstraint.constant = self.myNewTableView.contentSize.height
self.view.layoutIfNeeded()
}
答案 1 :(得分:1)
您的self.tableViewHeightConstraint
未连接到情节提要tableView
。我认为您在StoryBoard中误将其删除。连接此约束后,它可以正常工作。请检查以下附件。
此更改后输出:-
答案 2 :(得分:0)
我认为以下代码将为您提供帮助。
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
self.YOUR_TABLEVIEW.layoutIfNeeded()
self.YOUR_TABLEVIEW_HEIGHTCONSTRAINT.constant = self.YOUR_TABLEVIEW.contentSize.height
}