swift - 单个 UIView 和多个 TableView 的自动布局

标签 swift autolayout

我试图让以下(单个)UIView 在查看 TableView 2 或 TableView 3 时在手机屏幕中显示静态,然后在用户移动到 TableView 1 时水平滚动到 View 之外。本质上, UIView 从 TableView 1 移动到 TableView 2 时滚动,从 2 移动到 3 或 3 移动到 2 时保持静态,返回到 1 时滚动离开。

enter image description here

我的 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/

相关文章:

cocoa - NSLayoutConstraint.constant 忽略动画

iOS - 如何设置约束,使标签的底部等于 ImageView ,但高度可以变化

ios - 防止二次触摸生效

ios - 在两个按钮之间居中 View

ios - preferredStatusBarStyle 未在 iOS 13 和其他系统中调用

ios - 为什么以编程方式创建的(底部)工具栏按钮标题不显示?

ios - 如何调试自动布局约束?

ios - UIImageView 忽略宽度/高度约束

swift - nswindow 动画师无法在窗口 Controller 中工作

swift - 如何在一组同名的 SKSpriteNode 上运行 SKAction?