代码之家  ›  专栏  ›  技术社区  ›  Ollie

奇怪的行为:将约束添加到UIStoryboard中的UIScrollView的子视图

  •  2
  • Ollie  · 技术社区  · 8 年前

    我有一个视图控制器,它包含 UIScrollView 具有以下层次结构。

    - UIView -- UIScrollView ---- UIImageView ---- UIButton ....

    约束的子视图时 乌斯克罗尔视图 ,右对齐不正确。

    Imgur

    我的 乌斯克罗尔视图 限制条件:
    enter image description here

    UIButton 创建尾部约束后的约束
    enter image description here

    我试过的
    起初,我认为这只是故事板没有正确渲染视图控制器。在Xcode重新启动和计算机重新启动后,问题仍然存在。

    设置 Adjusts Scroll View Insets 属性对包含的视图控制器没有影响。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Xavier Daleau    8 年前

    滚动视图有点棘手,因为它们可以水平和垂直地滚动内容。

    仔细想想,scrollview无法知道其内容宽度,您必须设置它。这就是为什么你的按钮不在应该的位置。

    如果希望视图仅垂直滚动,则首先必须将内容宽度设置为scrollview的宽度(更确切地说,设置为ScreelView的父级宽度)。

    实现这一点的常用方法是在scrollView中创建一个独特的子视图,并将其用作内容视图。 因此,将UIView添加到scrollview中,添加约束,使其填充scrollview(即顶部、前导、尾部和底部间距=0)。 接下来,最重要的约束:添加一个宽度约束,使内容视图的宽度等于scrollview的父视图的宽度(在本例中,可能是viewController的视图)。

    就这样。现在,您可以将任何想要的内容添加到内容视图中。(您的内容视图也需要有一个高度,可以是固定高度,也可以是从上到下的约束。)

    ScrollView Setup