UITableView 的高度其内容与自动布局但限制 UITableView 高度
UITableView's height its content with Auto Layout but limit UITableView height
我在 UIViewController
中有一个 UITableView
和 UIButton
。
UIViewController -> UIView -> UITableView
-> UIButton
UITableView
高度设置为根据其固有内容大小进行相应更改。当 UITableView 中的行数更多时,高度会增加,但我不想增加,以至于 UIButton
不应该可见。我不想在 UIViewController
中包含 UIScrollView
。 UIButton 的约束设置为距底部 25 像素,距 UITbaleView 25 像素,宽度设置为屏幕宽度的 70%。我将 UITableView 的约束设置为距顶部 10 像素,宽度与 superview 相同,高度设置为 590。我不确定如何设置优先级,以便即使 UITableView 中的行数更多,UIButton 也将可见。
我正在使用下面的代码来增加 UITableView 的高度
override func updateViewConstraints() {
tableViewHeight.constant = TableIb.contentSize.height
super.updateViewConstraints()
}
约束你的按钮:
- 距 tableView 底部 25 点
- bottom lessThanOrEqualTo -25 pts from view bottom (safe-area)
为您的 tableViewHeight 约束指定低于要求的优先级。
因此,例如:
button.topAnchor.constraint(equalTo: tableView.bottomAnchor, constant: 25.0).isActive = true
button.bottomAnchor.constraint(lessThanOrEqualTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -25.0).isActive = true
// whatever you want to start your tableView height at...
// it doesn't really matter, as I assume you'll be immediately
// changing its .constant value
tableViewHeight = tableView.heightAnchor.constraint(equalToConstant: 30.0)
tableViewHeight.priority = .defaultHigh
tableViewHeight.isActive = true
按钮将“粘”在距 tableView 底部 25 磅的位置,当您更改 tableViewHeight.constant
时,它会“按下按钮”,但仅当它距 tableView 底部 25 磅时视图(安全区域)。
作为旁注,养成使用 Points 而不是 Pixels 和 view 的习惯宽度 而不是 屏幕宽度 .
或者,将您的按钮嵌入 UIView
并将该视图设置为 viewForFooterInSection
。它会“粘”在 tableView 的底行,但在 tableView 需要滚动时保持可见。
这将使您无需不断调整 tableView 的大小。
我在 UIViewController
中有一个 UITableView
和 UIButton
。
UIViewController -> UIView -> UITableView
-> UIButton
UITableView
高度设置为根据其固有内容大小进行相应更改。当 UITableView 中的行数更多时,高度会增加,但我不想增加,以至于 UIButton
不应该可见。我不想在 UIViewController
中包含 UIScrollView
。 UIButton 的约束设置为距底部 25 像素,距 UITbaleView 25 像素,宽度设置为屏幕宽度的 70%。我将 UITableView 的约束设置为距顶部 10 像素,宽度与 superview 相同,高度设置为 590。我不确定如何设置优先级,以便即使 UITableView 中的行数更多,UIButton 也将可见。
我正在使用下面的代码来增加 UITableView 的高度
override func updateViewConstraints() {
tableViewHeight.constant = TableIb.contentSize.height
super.updateViewConstraints()
}
约束你的按钮:
- 距 tableView 底部 25 点
- bottom lessThanOrEqualTo -25 pts from view bottom (safe-area)
为您的 tableViewHeight 约束指定低于要求的优先级。
因此,例如:
button.topAnchor.constraint(equalTo: tableView.bottomAnchor, constant: 25.0).isActive = true
button.bottomAnchor.constraint(lessThanOrEqualTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -25.0).isActive = true
// whatever you want to start your tableView height at...
// it doesn't really matter, as I assume you'll be immediately
// changing its .constant value
tableViewHeight = tableView.heightAnchor.constraint(equalToConstant: 30.0)
tableViewHeight.priority = .defaultHigh
tableViewHeight.isActive = true
按钮将“粘”在距 tableView 底部 25 磅的位置,当您更改 tableViewHeight.constant
时,它会“按下按钮”,但仅当它距 tableView 底部 25 磅时视图(安全区域)。
作为旁注,养成使用 Points 而不是 Pixels 和 view 的习惯宽度 而不是 屏幕宽度 .
或者,将您的按钮嵌入 UIView
并将该视图设置为 viewForFooterInSection
。它会“粘”在 tableView 的底行,但在 tableView 需要滚动时保持可见。
这将使您无需不断调整 tableView 的大小。