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后如何更新约束?