我试图让以下(单个)UIView 在查看 TableView 2 或 TableView 3 时在手机屏幕中显示静态,然后在用户移动到 TableView 1 时水平滚动到 View 之外。本质上, UIView 从 TableView 1 移动到 TableView 2 时滚动,从 2 移动到 3 或 3 移动到 2 时保持静态,返回到 1 时滚动离开。
我的 ViewController 中有以下内容,试图以编程方式更改约束,但是我对此没有太多经验。
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if self.scrollView.contentOffset.x <= 400 {
singleView.centerXAnchor.constraint(equalTo: TableView2.centerXAnchor, constant: 0).isActive = true
} else {
singleView.centerXAnchor.constraint(equalTo: TableView2.centerXAnchor, constant: self.scrollView.contentOffset.x).isActive = true
}
它无法正常工作;我应该采取更合适的方法吗?谢谢!
最佳答案
我会这样做。
使用分页 ScrollView 。
从限制为第二个 TableView 的 View 开始。
当用户开始从第 2 页滚动到第 3 页时,删除 View 上的所有约束并将其约束到 View Controller 主视图,使其保持静止。
当用户开始从第 2 页滚动到第 1 页时,反向滚动。
关于swift - 单个 UIView 和多个 TableView 的自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59230471/