【问题标题】:Getting UIScrollView to work with AutoLayout让 UIScrollView 与 AutoLayout 一起工作
【发布时间】:2013-11-11 04:07:12
【问题描述】:

这似乎是一个很常见的问题,但无论我进行哪段代码或更改,我都无法让它工作。我正在研究一个非常简单的示例。

故事板设置为 4" 纵向。UIScrollView 320px 宽 x 440px 高。它包含一个 320px 宽 x 900px 高的 UIView。应用程序仅锁定为纵向,但需要在 3.5" 和 4" 屏幕上工作。

我需要做什么才能让 UIView 在 UIScrollView 中垂直滚动?我需要设置一个约束吗? Clip Subviews 和 Autoresize Subviews 应该设置为什么,它有什么不同吗?应该将查看模式设置为什么,它有什么不同吗?我是否需要以编程方式重置 UIScrollView 的 ContentSize?如果是这样,这是否在 ViewDidLoad 事件中完成?

我尝试向 UIView、UIView 的底部元素和 UIScrollView 本身添加垂直约束。我以编程方式设置内容大小以匹配 UIView。

我已经在各种其他工具中构建了 UI,这只是让我为如此简单的事情而发疯。如果我关闭自动布局,它可以正常工作,但这不是我正在寻找的解决方案。

【问题讨论】:

标签: ios uiscrollview


【解决方案1】:

最终得到了这个答案。 https://stackoverflow.com/a/16029013/1342779

特别是我在 viewDidLoad 方法中的代码:

[_scrollView addConstraint:[NSLayoutConstraint constraintWithItem:_innerView
                                                           attribute:NSLayoutAttributeBottom
                                                           relatedBy:NSLayoutRelationEqual
                                                              toItem:_scrollView
                                                           attribute:NSLayoutAttributeBottom
                                                          multiplier:1.0
                                                            constant:0]];

【讨论】:

    【解决方案2】:

    看看this video。此外,您也可以尝试设置滚动视图的内容大小。

    // For verical scrolling
    scrollView.contentSize = CGSizeMake(viewToScroll.width, viewToScroll.height * numberOfPages);
    
    // For horizontal scrolling
    scrollView.contentSize = CGSizeMake(viewToScroll.width * numberOfPages, viewToScroll.height);
    

    【讨论】:

      猜你喜欢
      • 2017-09-22
      • 2012-11-30
      • 2015-02-23
      • 2023-03-24
      • 2016-12-13
      • 2016-10-06
      • 2011-11-30
      • 2014-02-19
      • 2011-09-03
      相关资源
      最近更新 更多