如何解决UITableView 的高度与自动布局的内容但限制 UITableView 高度
我在 UITableView
中有 UIButton
和 UIViewController
。
UIViewController -> UIView -> UITableView
-> UIButton
UITableView
高度设置为根据其内在内容大小进行相应更改。当 UITableView 中有更多行数时,高度会增加,但我不想增加 UIButton
不可见。我不想在那个 UIScrollView
中有 UIViewController
。 UIButton 的约束设置为距底部 25 像素,距 UITbaleView 25 像素,宽度设置为屏幕宽度的 70%。我将 UITableView 的约束设置为距顶部 10 像素,宽度与超级视图相同,高度设置为 590。我不确定如何设置优先级,以便即使 UITableView 中的行数更多,UIButton 也会可见。
override func updateViewConstraints() {
tableViewHeight.constant = TableIb.contentSize.height
super.updateViewConstraints()
}
解决方法
限制按钮:
- 距 tableView 底部 25 点
- 底部小于或等于 -25 点距视图底部(安全区域)
为您的 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 pts,当您更改 tableViewHeight.constant
时,它将“按下按钮”但仅直到它离视图底部 25 pts (安全区)。
作为旁注,养成用点代替像素,用视图宽度代替的习惯屏幕宽度。
或者,将您的按钮嵌入到 UIView
中并将该视图设置为 viewForFooterInSection
。它将“粘”到 tableView 的底行,但在 tableView 需要滚动时保持可见。
这将使您无需不断调整 tableView 的大小。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。