【问题标题】:iOS: Scrollview in storyboard won't scroll with embedded container viewsiOS:情节提要中的滚动视图不会随着嵌入式容器视图滚动
【发布时间】:2014-11-19 10:56:46
【问题描述】:

我在一个滚动视图中有一系列容器视图。目前,视图控制器不会垂直滚动。滚动视图可以通过容器视图控制器检测滚动触摸吗?

【问题讨论】:

    标签: ios storyboard interface-builder scrollview


    【解决方案1】:

    我看到您没有使用任何自动布局约束,也许这就是问题所在。

    如果您在viewDidLoad: 中设置 contentSize,它会在 scrollView 命中 layoutSubviews 时发生变化。

    UIScrollViews 需要它们的所有contentSize 信息来匹配才能正常工作。自动布局会影响该属性。您将需要从滚动视图的顶部到底部以及从左侧到右侧的所有约束,即使 IB 没有要求它。

    XCode 6 中的自动布局操作有一些非常受欢迎的改进。我建议更新。过去几周我一直在小牛队上使用它,到目前为止效果很好。

    干杯!

    【讨论】:

    • 自动布局约束成功了。谢谢成功先生!
    • 干杯!大获成功!
    【解决方案2】:

    您总是可以通过子类化容器视图来传递触摸。在那里你可以调用父视图控制器各自的方法

    - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        [self.parentViewController touchesBegan:touches withEvent:event];
    }
    

    【讨论】:

    • 我假设你对 touchesMoved 和 touchesEnded 也做了同样的事情,对吧?
    • 是的,我做到了。棘手的部分是将正确的数据发送到 self.parentViewController 的 scrollView 内容偏移量,并确保它保持相同的动画行为。
    • 另外,我看到您没有使用任何自动布局约束,也许这就是问题所在。当涉及到 contentSize 时,滚动视图需要有“0”的歧义。
    • 我在视图中以编程方式设置了滚动视图的 contentSize 确实加载了。
    • 如果没有自动布局约束,故事板中的滚动视图是否无法正常工作?
    猜你喜欢
    • 2020-05-31
    • 2013-11-19
    • 2017-02-09
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    相关资源
    最近更新 更多