我试图根据来自前一个视图控制器的数据调整tableView的大小。例如:
if previousData == "Acitivites" {
tableView.height = 375
tableView.width = 300
} else {
tableView.height = 480
tableView.width = 300
}
我不确定如何实现这一点,我将不胜感激任何指导!
答案 0 :(得分:3)
设置heightConstraintTableView
tableView
override func viewDidLayoutSubviews()
{
heightConstraintTableView.constant = previousData == "Acitivites" ? 375 : 480
}
答案 1 :(得分:1)
您可以在viewDidLayoutSubviews中检查条件并更改tableview的框架。
Using $this when not in object context
答案 2 :(得分:0)
您可以动态设置约束,如下所示......
override func viewDidLayoutSubviews() {
//setting height var
var height: CGFloat = (previousData == "Acitivites") ? 375 : 480
//top constraint
tableView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
//leading constraint
tableView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
//trailing constraint
tableView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true
//height constraint
tableView.heightAnchor.constraint(equalToConstant: height).isActive = true
//setting height priority to avoid constraint breaking bcoz height, top and bottom is set
let bottomconstraint = tableView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor)
bottomconstraint.priority = .defaultHigh
bottomconstraint.isActive = true
}
如果您已为高度约束创建了IBOutlet,则可以以编程方式设置它。
self.heightConstraint_tableView.constant = <new height>