UIScrollView 和 UIView 的约束

Posted

技术标签:

【中文标题】UIScrollView 和 UIView 的约束【英文标题】:Constraints with UIScrollView and UIView 【发布时间】:2015-09-22 23:54:51 【问题描述】:

我有一个具有半屏 UIScrollView 的 UIViewController。这是在 IB 中设计的,具有所有必需的约束并且工作正常。我有几个 UIViews (xib) 文件,并为 UIViews 上的每个对象分别正确设置了正确的约束。现在,当我加载这些 UIView 并将其添加到 UIScrollView 时,所有 UIView 都会失去它的约束,并且滚动视图甚至会在屏幕之外显示 UIView。我想要的是仅在 UIScrollView 中显示 UIView,当我向右滚动(水平滚动)时,它会显示第二个 UIView,而不是显示第一个 UIView 的剩余部分。

我该如何解决这个问题?感谢您的回复。

【问题讨论】:

如何将视图添加到滚动视图。以编程方式还是通过 IB? 以编程方式 UIView *dashboard = [[[NSBundle mainBundle] loadNibNamed:@"FirstView" owner:self options:nil] objectAtIndex:0]; [仪表板 setFrame:CGRectMake(0, 0, self.scrollPresenter.frame.size.width, self.scrollPresenter.frame.size.height)]; 【参考方案1】:

要在滚动视图中正确使用自动布局,您需要为要添加的其余子视图添加一个 UIView 作为容器。

所以结构会是这样的

然后您可以将所有子视图添加到View - As Container 有关更多详细信息,您可以按照本教程进行操作 How to make AutoLayou work on A ScrollView

【讨论】:

以上是关于UIScrollView 和 UIView 的约束的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 中的 UIView 尊重一些约束,但不尊重其他约束

UIView 不遵守 UIScrollView 中的自动布局约束

使用自动布局约束在 UIScrollView 内为 UIView 设置动画

swift - 在UIScrollView上从xib添加UIView后如何更新约束?

在不破坏约束的情况下将 UIView 的子视图移植到 UIScrollView?

有没有办法将 UIView 嵌入到 UIScrollview 中而不会丢失 iOS 中的子视图约束?