带有自动布局的滚动视图表单

Posted

技术标签:

【中文标题】带有自动布局的滚动视图表单【英文标题】:scrollview form with autolayout 【发布时间】:2013-11-28 15:14:45 【问题描述】:

我正在尝试在我的应用程序中构建一个滚动视图表单。所以,有一个 EditForm(它是一个 uiviewcontroller),它包含一个包含我的字段的 contentView(uiview)的滚动视图。

如何使用自动布局初始化所有这些视图?要说滚动视图获取 contentView 的整个大小(我在 contentView 上添加子视图),滚动视图要在 uiviewcontroller 上,当然,滚动视图要根据 contentView 的大小正确滚动。

谢谢:)

【问题讨论】:

【参考方案1】:

其实这很容易做到。

我个人喜欢在我的应用程序中使用没有任何 IB 的纯代码。首先检查来自 Apple 的 link。

基本步骤是:

    确保您的所有子视图都是 translatesAutoresizingMaskIntoConstraints = NO; 使用VFL为您的视图添加约束

AutoLayout 的 UIScrollView 提示 - 您需要为底部子视图添加底部约束,以便滚动视图可以滚动。

祝你好运:)

【讨论】:

好的,谢谢!但是你对底部约束是什么意思?有例子吗? 好的,如果我们不使用自动布局,我们需要设置滚动的内容大小,对吧?在自动布局模式下,我们不为 scrollView 设置内容大小。相反,我们对滚动视图的底线进行约束,以便滚动视图知道滚动内容的大小。 哦对了,contentSize不能自动确定? 不。您应该为滚动提供更多详细信息。它不是那么聪明。无论如何,请查看苹果示例。它已经通过以下代码做到了:@“V:|[imageView]|”。你可以看到 imageView 的底部正好对着 ScrollView 的底部。这将为滚动提供内容大小。 问题是我在contentView中有一个动态tableview。用户可以单击并向 contentView 添加一行,因此我也需要增加 scrollView 的 contentSize。那么,不做大量计算就没有解决方案?

以上是关于带有自动布局的滚动视图表单的主要内容,如果未能解决你的问题,请参考以下文章

自动布局滚动视图最佳方法

滚动视图不在自动布局中滚动子视图

带有自动布局的 UIScrollView:后代在查看区域之外,但视图不滚动

如何在 Swift 中使用带有滚动视图的自动布局?

带有自动布局的滚动视图内的iOS 8 imageView不起作用

我的带有自动布局约束的 Swift 4 UIScrollView 没有滚动